服务器正在 Content-Type 上运行:Text/xml(soap 1.1),而客户端尝试使用 application/soap+xml(soap 1.2) 进行通信。这引发了以下 http 错误
HTTP/1.1 415 Unsupported Media Type
Date: Thu, 24 Jul 2014 15:35:02 GMT
Content-Length: 0
X-Powered-By: Servlet/3.0 JSP/2.2
那么有什么办法可以解决这个问题吗?
Web 服务是部署在 Weblogic 服务器配置上的 jax-ws Web 服务。我们希望通过更改客户端代码来解决该问题。
我们如何确保服务器soap同时接受1.1和1.2请求
最佳答案
从 weblogic 9.2(甚至可能更早)开始,Soap 1.1 都是如此。和 Soap 1.2 均受支持。可以在Oracle Docs查看相关文档
您最终将不得不更改应用程序本身以支持 1.2,因为 1.1 是默认值。具体来说,通过更改weblogic.jws.Binding
,例如:
package examples.webservices.soap12;
...
import javax.jws.WebMethod;
import javax.jws.WebService;
import weblogic.jws.Binding;
@WebService(name="SOAP12PortType",
serviceName="SOAP12Service",
targetNamespace="http://example.org")
@Binding(Binding.Type.SOAP12)
public class SOAP12Impl {
@WebMethod()
public String sayHello(String message) {
...
}
}
还有一些其他关于如何支持这两种方法的很好的示例,您可能需要两次实现方法并更改您的 WSDL 以列出两种实现。将这些视为良好的来源:
http://blog.allanglen.com/2010/04/wcf-interoperability-with-soap-1-1-and-soap-1-2-clients
关于java - 客户端和服务器之间不匹配 - Soap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24938472/