当我向服务器发送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.in​​dex

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”的值相关推荐

  1. java soap协议头_自己调用webservice方法总结(带请求头SoapHeader)

    调用webservice总结:1.加入第三方的jar包 Ksoap2-android-XXX2.访问响应的webservice的网站,查看响应的信息,得到nameSpace,methodName,ur ...

  2. java 对外提供接口_Java服务器对外提供接口以及Android端向服务器请求数据

    讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么请求服务器,接收以及解析返回数据的. 服务端:还是在原先S2SH框架的项目上(搭建SSH详细步骤及其相关说明),加 ...

  3. java 内存很高_Java服务器内存和CPU占用过高的原因

    一.内存占用过高 1.造成服务器内存占用过高只有两种情况:内存溢出或内存泄漏 (1)内存溢出:程序分配的内存超出物理内存的大小,导致无法继续分配物理内存,出现OOM报错. (2)内存泄漏:不再调用的对 ...

  4. java的hashmap排序_Java面试题:如何对HashMap按键值排序

    Java中HashMap是一种用于存储"键"和"值"信息对的数据结构.不同于Array.ArrayList和LinkedLists,它不会维持插入元素的顺序. ...

  5. java excel条件格式_Java 设置Excel条件格式(高亮条件值、应用单元格值/公式/数据条等类型)...

    概述 在Excel中,应用条件格式功能可以在很大程度上改进表格的设计和可读性,用户可以指定单个或者多个单元格区域应用一种或者多种条件格式.本篇文章,将通过Java程序示例介绍条件格式的设置方法,设置条 ...

  6. java 反射 设置属性_Java通过反射机制动态设置对象属性值的方法

    /** * MethodName: getReflection * Description:解析respXML 在通过反射设置对象属性值 * User: liqijing * Date:2015-7- ...

  7. java调用asmx接口_java调用.net写的webserver接口(.asmx后缀)

    JAVA用这种方式调用webservice,需要注意的地方: 1. 服务器未能识别 HTTP 标头 SOAPAction 的值: 症状一: Web Service + ASP.NET 应用程序部署到服 ...

  8. 什么是URL?协议头,路径和端口是什么意思?

    URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息. URL ...

  9. 什么是URL?协议头、路径和端口是什么意思?

    URL(Uniform Resource Locator,统一资源定位符)是互联网上标准资源的地址,互联网上每个文件(即资源)都有一个唯一的URL,它包含了文件的位置以及浏览器处理方式等信息. URL ...

最新文章

  1. Appcan关闭主窗口
  2. PHP的函数-----生成随机数、日期时间函数
  3. 程序猿像妹子表白专用代码
  4. 第六届上海市大学生网络安全大赛 | Wp
  5. 第31讲 UI组件之 Gallery画廊控件
  6. NLP新秀:BERT的优雅解读
  7. 安徽中职计算机专业对口高考,安徽对口高考和普通高考有什么区别?
  8. Vue (响应式原理-模拟-2-Observer)
  9. 麦克风失灵_iPhone7Plus手机麦克风失灵怎么办?请看解决方案
  10. php删除二维数组的某一行某一列_php中怎么去除二维数组的某个字段?
  11. 数据库设计的范式规范
  12. 开机加电到系统打开究竟发生了什么?(1)
  13. C中使用errno查看函数调用的错误
  14. java8新特性和汪文君Google Guava实战
  15. Linux系统下挂载Windows分区的方法和技巧
  16. 《赢家的诅咒》书中的精髓:人性的复杂让主流经济学出现了诸多失灵,如何用更多理论完善经济学大厦是经济学家的重要使命
  17. 原始套接字Raw Socket基础-- WSADATA wsaData(转)
  18. 网站建设:颜色与线条的选择
  19. 表格中自动布局注意和使用自动计算行高
  20. BOL简单分析(二)

热门文章

  1. LeetCode简单题之爬楼梯
  2. LeetCode简单题之将所有数字用字符替换
  3. 处理器解决物联网和人工智能的融合
  4. 将人工智能模型压缩到微控制器中
  5. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计
  6. Android TextView 数字后面追加2个0 或者保留小数点后面2位
  7. Android 删除无用的导包
  8. 电子表单系列谈之表单数据处理
  9. Single Image Dehazing via Conditional Generative Adversarial Network(CVPR2018-图像去雾)
  10. 20172324 2018-2019-1《程序设计与数据结构》实验2报告