部署在Liberty服务器上时会出现SOAPFaultException,但在Websphere应用程序服务器完整概要文件中可以正常工作

时间:2019-06-25 15:43:13

标签: wsdl soap-client websphere-liberty soapfault

  

我正在从WAS8.5完整配置文件迁移Java企业应用程序   自由服务器。我的应用程序代码具有soap客户端并且是必需的   从WSDL生成的存根。使用时我可以收到回应   WAS8.5,但在运行自由服务器时遇到异常。

  • 我已经添加了jaxws-2.2。
  • 从eclipse重新创建了指向自由服务器IBM-WS的存根。我
  • 无法在线找到相关答案。

控制台日志

[WARNING ] Could not unwrap Operation {http://services.abc.com/gb/getsomepoint/v1}getSomeInfoByParam to match method "public abstract void com.abc.services.gb.getsomepoint.v1.GBGetSomePointV1.getSomeInfoByParam(javax.xml.ws.Holder,java.lang.String,java.lang.String,javax.xml.ws.Holder,javax.xml.ws.Holder)"
javax.xml.ws.soap.SOAPFaultException: BIP3113E: Exception detected in message flow GB_GetSomePoint_V1.SOAP Input (integration node NMD4BRK) 
[err]   at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:156)
[err]   at [internal classes]
[err]   ... 51 more
[err] Caused by: 
[err] org.apache.cxf.binding.soap.SoapFault: BIP3113E: Exception detected in message flow GB_GetSomePoint_V1.SOAP Input (integration node NMD9BRK) 
[err]   at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:84)
[err]   at [internal classes]
[err]   ... 53 more

2 个答案:

答案 0 :(得分:1)

控制台上没有太多信息可进行,但是要检查的一件事是,在Liberty上与客户端之间的请求/响应消息是否看起来与在WAS 8.5上相同。这将是验证预期行为是否相同的简单方法。要考虑的另一件事是您的WSDL合同是否与客户端生成的请求匹配(即所有绑定都在那里)。

Liberty与WAS 8.5上的Web服务配置(WS-Policy / WS-Security)可以有很大的不同,并且此Knowledge Center文档提供了一些有关如何根据需要正确配置应用程序的好信息。

将JAX-WS应用程序部署到Liberty:

https://www.ibm.com/support/knowledgecenter/SSD28V_9.0.0/com.ibm.websphere.wlp.core.doc/ae/twlp_dep_jaxws.html

我建议的最后一件事是打开Liberty的Web服务跟踪。控制台消息中没有很多有关根本原因的信息,但是通过打开跟踪,可能会发现特定问题。您可以按照以下说明打开跟踪。

在WebSphere Liberty上启用跟踪:

https://www.ibm.com/support/knowledgecenter/SSD28V_9.0.0/com.ibm.websphere.wlp.core.doc/ae/rwlp_logging.html

您要为Web服务启用的特定跟踪规范如下:

traceSpecification="*=audit:com.ibm.ws.jaxws.*=finest:org.apache.cxf.*=finest”

答案 1 :(得分:0)

如果在注释掉jaxws-2.2功能后可以正常工作,则必须使用与应用程序打包在一起的其他jax-ws实现。您可以尝试重新添加jaxws-2.2功能并为自由服务器设置此JVM属性:-Dcom.ibm.xml.xlxp.jaxb.opti.level = 0