java soap协议头_java – 服务器无法识别HTTP标头“SOAPAction”的值
当我向服务器发送SOAP请求时,它返回以下错误,尽管我使用SoapUI发送类似请求并且可以正常工作.我似乎需要将我的SOAP请求更改为我使用SoapUI发送的请求. WSDL是here.
[ truncated ] System.Web.Services.Protocols.SoapException : The value of the
HTTP header ' SOAPAction ' was not recognized by the server . \ r \ n at
System.Web.Services.Protocols.Soap11ServerProtocolHelper.RouteRequest ( )
\ r \ n at System.Web.Servic
我正在使用Java发送以下请求
MetaSearch>falseMetaSearch>
我可以使用SoapUI发送以下请求,它可以工作
MetaSearch>falseMetaSearch>
我不知道如何使用Java创建的请求与我使用SoapUI发送的请求相同.
码
SearchFlights
@XmlRootElement(name = "SearchFlights")
@XmlAccessorType(XmlAccessType.FIELD)
public class SearchFlights {
@XmlElement(name = "SoapMessage")
private SoapMessage soapMessage;
getter and setter
的SOAPMessage
@XmlRootElement(name = "SoapMessage")
@XmlAccessorType(XmlAccessType.FIELD)
public class SoapMessage {
@XmlElement(name = "Username")
private String username;
@XmlElement(name = "Password")
private String password;
@XmlElement(name = "LanguageCode")
private String languageCode;
@XmlElement(name = "Request")
private Request request;
getters and setters
请求
@XmlRootElement(name = "Request")
@XmlAccessorType(XmlAccessType.FIELD)
public class Request {
@XmlElement(name = "Departure")
private String departure;
@XmlElement(name = "Destination")
private String destination;
@XmlElement(name = "DepartureDate")
private String departureDate;
@XmlElement(name = "ReturnDate")
private String returnDate;
@XmlElement(name = "NumADT")
private int numADT;
@XmlElement(name = "NumINF")
private int numInf;
@XmlElement(name = "NumCHD")
private int numCHD;
@XmlElement(name = "CurrencyCode")
private String currencyCode;
@XmlElement(name = "WaitForResult")
private boolean waitForResult;
@XmlElement(name = "NearByDepartures")
private boolean nearByDepartures;
@XmlElement(name = "NearByDestinations")
private boolean nearByDestinations;
@XmlElement(name = "RROnly")
private boolean rronly;
@XmlElement(name = "MetaSearch")
private boolean MetaSearch;
getters and setters
package-info.java
@XmlSchema(
namespace = "ElsyArres.API",elementFormDefault = XmlNsForm.QUALIFIED)
package com.myproject.flights.wegolo;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
jaxb.index
SearchFlights
Flight
Flights
Leg
Legs
Outbound
Request
Response
SoapMessage
代码发送请求
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPConstants;
import org.springframework.oxm.jaxb.Jaxb2Marshaller;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestClientException;
import org.springframework.web.client.RestTemplate;
import org.springframework.ws.client.core.WebServiceTemplate;
import org.springframework.ws.soap.saaj.SaajSoapMessageFactory;
......
// populate searchFlights and other classes to create request
try {
SaajSoapMessageFactory messageFactory = new SaajSoapMessageFactory(
MessageFactory.newInstance());
messageFactory.afterPropertiesSet();
WebServiceTemplate webServiceTemplate = new WebServiceTemplate(
messageFactory);
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setContextPath("com.myproject.flights.wegolo");
marshaller.afterPropertiesSet();
webServiceTemplate.setMarshaller(marshaller);
webServiceTemplate.afterPropertiesSet();
Response response = (Response) webServiceTemplate
.marshalSendAndReceive(
"http://www5v80.elsyarres.net/service.asmx",searchFlights);
Response msg = (Response) response;
System.err.println("Wegolo >>>"
+ msg.getFlights().getFlight().size());
} catch (Exception s) {
s.printStackTrace();
}
更新
我删除了package-info.java并设法使用建议的代码,但它仍然发送相同的标头.
Response response = (Response) webServiceTemplate
.marshalSendAndReceive(
"http://www5v80.elsyarres.net/service.asmx",searchFlights,new WebServiceMessageCallback() {
public void doWithMessage(WebServiceMessage message)
{
((SoapMessage)message).setSoapAction("http://www5v80.elsyarres.net/searchFlights");
}
}
);
java soap协议头_java – 服务器无法识别HTTP标头“SOAPAction”的值相关推荐
- java soap协议头_自己调用webservice方法总结(带请求头SoapHeader)
调用webservice总结:1.加入第三方的jar包 Ksoap2-android-XXX2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodName,ur ...
- java 对外提供接口_Java服务器对外提供接口以及Android端向服务器请求数据
讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么请求服务器,接收以及解析返回数据的. 服务端:还是在原先S2SH框架的项目上(搭建SSH详细步骤及其相关说明),加 ...
- java 内存很高_Java服务器内存和CPU占用过高的原因
一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...
- java的hashmap排序_Java面试题:如何对HashMap按键值排序
Java中HashMap是一种用于存储"键"和"值"信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. ...
- java excel条件格式_Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)...
概述 在Excel中,应用条件格式功能可以在很大程度上改进表格的设计和可读性,用户可以指定单个或者多个单元格区域应用一种或者多种条件格式.本篇文章,将通过Java程序示例介绍条件格式的设置方法,设置条 ...
- java 反射 设置属性_Java通过反射机制动态设置对象属性值的方法
/** * MethodName: getReflection * Description:解析respXML 在通过反射设置对象属性值 * User: liqijing * Date:2015-7- ...
- java调用asmx接口_java调用.net写的webserver接口(.asmx后缀)
JAVA用这种方式调用webservice,需要注意的地方: 1. 服务器未能识别 HTTP 标头 SOAPAction 的值: 症状一: Web Service + ASP.NET 应用程序部署到服 ...
- 什么是URL?协议头,路径和端口是什么意思?
URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息. URL ...
- 什么是URL?协议头、路径和端口是什么意思?
URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息. URL ...
最新文章
- Appcan关闭主窗口
- PHP的函数-----生成随机数、日期时间函数
- 程序猿像妹子表白专用代码
- 第六届上海市大学生网络安全大赛 | Wp
- 第31讲 UI组件之 Gallery画廊控件
- NLP新秀:BERT的优雅解读
- 安徽中职计算机专业对口高考,安徽对口高考和普通高考有什么区别?
- Vue (响应式原理-模拟-2-Observer)
- 麦克风失灵_iPhone7Plus手机麦克风失灵怎么办?请看解决方案
- php删除二维数组的某一行某一列_php中怎么去除二维数组的某个字段?
- 数据库设计的范式规范
- 开机加电到系统打开究竟发生了什么?(1)
- C中使用errno查看函数调用的错误
- java8新特性和汪文君Google Guava实战
- Linux系统下挂载Windows分区的方法和技巧
- 《赢家的诅咒》书中的精髓:人性的复杂让主流经济学出现了诸多失灵,如何用更多理论完善经济学大厦是经济学家的重要使命
- 原始套接字Raw Socket基础-- WSADATA wsaData(转)
- 网站建设:颜色与线条的选择
- 表格中自动布局注意和使用自动计算行高
- BOL简单分析(二)
热门文章
- LeetCode简单题之爬楼梯
- LeetCode简单题之将所有数字用字符替换
- 处理器解决物联网和人工智能的融合
- 将人工智能模型压缩到微控制器中
- 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计
- Android TextView 数字后面追加2个0 或者保留小数点后面2位
- Android 删除无用的导包
- 电子表单系列谈之表单数据处理
- Single Image Dehazing via Conditional Generative Adversarial Network(CVPR2018-图像去雾)
- 20172324 2018-2019-1《程序设计与数据结构》实验2报告