【发布时间】:2021-08-31 18:00:59
【问题描述】:
我正在开发一个简单的 SOAP JAX-WS WebService。
我在 JRE 7 上,所以我不得不选择相当老的库,因为我必须在 WebSphere 8.5 上进行部署。
我使用了 Spring 和 CXF。
使用soapUI 进行测试我看到WebSphere 上的响应对象是空的,并且在Tomcat 7 中正确表示(使用JDK 7 运行),但是在开发和生产环境中,一切都可以执行(我可以看到日志跟踪和数据库更新)。
另一方面,错误(自定义复杂类型也是如此)在两个系统上都正确表示。
我试图用一系列元素或一组属性来改变复杂类型之间的模式;同样,在 Tomcat 上一切正常,响应是格式正确的 XML,具有正确的命名空间,但在 WebSphere 上为空。
以下是两个响应示例:
WebSpehere
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:authResponse xmlns:ns2="http://www.my-ws-domain.com/schema/geco-reply-ws/"/>
</soap:Body>
</soap:Envelope>
雄猫
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns2:authResponse xmlns:ns2="http://www.my-ws-domain.com/schema/geco-reply-ws/">
<authToken>33WDg36lr+IKUdEMhrfW+L4pg5SzRjtuHtp3kDC5pBE=</authToken>
</ns2:authResponse>
</soap:Body>
</soap:Envelope>
我认为它可以是 JAXB 实现(WebSphere 上的 XML 编组)。
有什么建议吗?
【问题讨论】:
-
我认为问题出在其他地方。生成该令牌的哈希值我使用 HmacSHA256 和 WS 8.5 生成一个没有错误的空哈希值。当解决方案变得清晰时,我将关闭问题。
标签: java xml web-services websphere jax-ws