繁体   English   中英

由于新服务器不支持SOAPMessage内容类型,Weblogic 9.2 Web服务客户端SOAP错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM