我现在正在开发我的Web服务(我使用jax ws,jboss应用程序服务器版本4.0.4,EJB来实现Web服务),当我开始与将要使用它的人测试我的Web服务时,所有对我来说没问题,但他们的软件出现错误
{"响应消息的内容类型 text/xml;charset=UTF-8 与绑定(bind)的内容类型 (application/soap+xml;charset=utf-8) 不匹配。如果使用自定义编码器,请确保正确实现 IsContentTypeSupported 方法}
。
对我来说,我的网络服务似乎使用soap 1.1而不是soap 1.2,是否可以通过我的类上的jax ws注释来设置它?我找到了 @BindingType
注释并尝试在我的 EJB 类中使用 @BindingType(SOAPBinding.SOAP12HTTP_BINDING)
,但 wsdl 仍然与以前相同,并且内容类型没有更改。非常感谢
最佳答案
我认为这不是 SOAP 版本的问题。
Exchange Server 对字符集规范非常挑剔。它必须是 charset=utf-8
、小写且不带引号。我必须覆盖我的 SOAP 代码添加到 SOAP 调用的默认 charset="utf-8"
。
我无法帮助您如何在 Java 中进行此覆盖,因为我正在使用 Delphi。也许其他读者可以编辑我的答案,并将最后一段替换为在 Java 中执行此操作的正确说明。
关于java - 内容类型 text/xml 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23919419/