【问题标题】:JAX-WS empty response in WebSphere but not in TomcatWebSphere 中的 JAX-WS 空响应,但 Tomcat 中没有
【发布时间】: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


【解决方案1】:

事实证明,WebSphere 8.5 在处理 javax.crypto 包中的哈希算法时存在一些问题。
如果我用纯文本或一些 Base64 编码或自定义哈希函数进行响应,一切正常。
如果在调用堆栈的某些部分,我尝试使用加密函数对字符串进行散列,WAS 控制台中不会显示错误,但散列函数返回 null。

【讨论】:

    猜你喜欢
    • 2016-11-07
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2012-07-09
    • 2013-05-08
    • 2018-01-30
    • 1970-01-01
    相关资源
    最近更新 更多