[英]Weblogic 9.2 webservice client SOAP Fault due to SOAPMessage content-type not supported in new server
我公司有技术更新项目。 我们正在从市场营销中购买新系统,并尝试将其与我们现有的系统集成。 因为有数百个现有系统需要集成。 我们设计了可重复使用的当前拆卸系统接口,并在我们的新系统中公开了它们。
由于我们新的系统框架问题,它无法将Web服务端点URL公开给我们现有的系统。 相反,它提供了一个包装servlet URL,并且除了在weblogic 9.2上运行的系统之外,它几乎适用于几乎所有系统。 它出现Soap错误错误( http 500 - Internal Server Error
),并且与新系统的连接失败。
java.rmi.RemoteException: SOAPFaultException - FaultCode [{http://schemas.xmlsoap.org/soap/envelope/}Server] FaultString [Failed to receive message java.io.IOException: The server at *http://***.***.***.***:8080/servlet/SoapAdapter* returned a 500 error code (Internal Server Error).
我们发现它可以在上面的Weblogic 10上运行,但是不能在weblogic 9.2上运行。 我们花了大约2周的时间来找出根本原因,但仍然没有结果。
(代表OP张贴) 。
昨天,我使用Fiddler捕获了http包,并比较了weblogic 10和weblogic 9之间的区别。
当我们尝试使用weblogic 10时,我发现内容类型为[ Content-Type: text/xml
]; 但是当尝试使用weblogic 9.2时,我们发现内容类型为[ text/xml; charset="utf-8"
text/xml; charset="utf-8"
]。 Weblogic 9.2在后面发送字符集非常奇怪。
因此,我实现了一个肥皂处理来覆盖SoapMessage MimeHeaders;
的内容类型SoapMessage MimeHeaders;
有用!
以下是我的肥皂处理程序代码:
SOAPMessageContext soapMessageContext = (SOAPMessageContext) context;
SOAPMessage message = soapMessageContext.getMessage();
MimeHeaders soapMimeHeader = message.getMimeHeaders();
soapMimeHeader.removeHeader("Content-Type");
soapMimeHeader.addHeader("Content-Type", "text/xml");
soapMimeHeader.addHeader("charset", "UTF-8");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.