0

我有一个使用 Springsource 工具包(即 @Service 属性)用 Java 编写的客户端,它通过 HTTPS 与外部 Web 服务(完全独立,与我的公司无关)进行通信。我在 marshalSendAndReceive 步骤中遇到异常,它指出内容类型以 text/html 而不是预期的 text/xml 形式返回 - 消息“这可能是错误消息吗?”

Web 服务本身是该服务下一个版本的公共测试,并且从相同的代码调用实时服务可以正常工作。我调用的这种特定方法在实时系统上运行良好,但在测试系统上运行良好。

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

我曾尝试使用 Fiddler 和 Wireshark 来检查流量,但根本无法让 Fiddler 看到它(我怀疑这是在 STS 中使用带有代理的 Tomcat 的问题)并且 Wireshark 无法解码 HTTPS 的东西(我没有钥匙)。我不能使用 HTTP,因为如果我尝试,外部服务会返回 403 Forbidden。

我不是最初的开发人员,我什至不是 Java 开发人员。我是一位经验丰富的 .NET 开发人员,因此任何与此的类比都会被理解 - 否则,我是一个傻瓜,并相应地表达您的指示/问题/可能的帮助。按照我的前任的指示,我使用 XmlBeans 从 WSDL 创建了一个 JAR 文件,并将其添加为引用库,但我无法确定我是否正确地完成了该操作,甚至无法确定它在做什么。它似乎对事物没有明显的影响。

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

4

1 回答 1

0

我的第一个目标是让 Fiddler 工作。很难在黑暗中调试。但是,当您在 STS 中讨论在 Tomcat 中运行的客户端时,我会感到困惑。你的客户端是 webapp 吗?

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

于 2012-09-19T16:11:59.547 回答