Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查来自Java/SpringWeb服务客户端的请求/响应_Java_Web Services_Spring_Sts Springsourcetoolsuite - Fatal编程技术网

检查来自Java/SpringWeb服务客户端的请求/响应

检查来自Java/SpringWeb服务客户端的请求/响应,java,web-services,spring,sts-springsourcetoolsuite,Java,Web Services,Spring,Sts Springsourcetoolsuite,我有一个使用SpringSourceToolkit(即@Service属性)用Java编写的客户端,它通过HTTPS与外部Web服务(完全独立,与我的公司无关)进行通信。我在MarshalSendReceive步骤中遇到一个异常,该步骤声明内容类型返回为text/html而不是预期的text/xml,并显示消息“这可能是错误消息吗?” webservice本身是该服务下一个版本的公共测试,从同一代码调用实时服务可以很好地工作。我调用的这个方法在实时系统上运行良好,但在测试系统上运行不好 我的直觉

我有一个使用SpringSourceToolkit(即@Service属性)用Java编写的客户端,它通过HTTPS与外部Web服务(完全独立,与我的公司无关)进行通信。我在MarshalSendReceive步骤中遇到一个异常,该步骤声明内容类型返回为text/html而不是预期的text/xml,并显示消息“这可能是错误消息吗?”

webservice本身是该服务下一个版本的公共测试,从同一代码调用实时服务可以很好地工作。我调用的这个方法在实时系统上运行良好,但在测试系统上运行不好

我的直觉是,测试系统的请求格式不正确——尽管根据发行说明,只有响应应该在模式中发生更改——这导致服务返回一个错误,该错误被我的客户端错误地解析。我在所有请求中都遇到了这个错误,即使是那些(根据发行说明)没有更改的请求

我曾尝试使用Fiddler和Wireshark来检查流量,但根本无法让Fiddler看到流量(我怀疑在STS中使用Tomcat和代理是个问题),Wireshark无法解码HTTPS内容(我没有密钥)。我不能使用HTTP,因为如果我尝试,外部服务返回403禁止

我不是最初的开发人员,甚至不是Java开发人员。我是一名经验丰富的.NET开发人员,因此任何与之类似的东西都会被理解——否则,我就是一个哑巴,会相应地说出您的说明/问题/可能的帮助。按照我的前任的指示,我已经使用XmlBeans从WSDL创建了一个JAR文件,并将其添加为一个引用库,但我不能确定我是否正确地完成了这项工作,甚至不能确定它正在做什么。它似乎对事物没有明显的影响


我如何调试这个问题,并验证它是否是我的客户机或他们的服务的问题?

我的第一个目标是让Fiddler工作。在黑暗中调试是困难的。然而,当您在STS中讨论在Tomcat中运行的客户机时,我感到困惑。你的客户是网络应用程序吗


您是否尝试过其他工具,如验证服务是否按预期响应您的请求?

您是否将请求的
Accept
标题设置为
text/xml
(或者
application/xml
)?我看不到设置的任何地方-不是在配置或Java中。原来我的前任留下的Web服务地址和服务支持TEAM提供的不同地址都是错误的。在VS2012中使用“添加服务引用”帮助我找到了正确的地址!Eric B的回答是正确的,尽管我很糟糕。它是一个网络应用程序,但我感兴趣的是与这个外部网络服务对话的应用程序。我来看看SoapUI,我以前从未听说过它。我的印象是webservice(大服务,数百个用户,在他们自己的内部测试之后的公共集成测试)并没有错。SoapUI只是一个客户端,它允许您基于提供的WSDL对webservice进行测试。如果需要,您可以查看服务器的响应以及跟踪数据。一个很棒的WS调试工具。它至少允许您检查返回流量,并查看其是否符合您的预期结果。