我有一个Web服务,它使用Tomcat 7.0.25和JibxWS接受与opentravel.org OTA指定的XML消息相关的SOAP消息。
我已经使用SOAPUI进行了测试,但一切正常,但现在真正的客户端希望开始使用该服务,当他们连接时我会收到此错误:
May 17, 2012 2:05:55 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [siteminder] in context with path [/webservice] threw exception [Error parsing media type in accept-type from request: text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2] with root cause
java.text.ParseException: Unable to parse mediaType ' *; q=.2'
at org.jibx.ws.codec.MediaType.<init>(MediaType.java:130)
at org.jibx.ws.codec.CodecDirectory.parseAcceptString(CodecDirectory.java:244)
at org.jibx.ws.codec.CodecDirectory.getAcceptableMediaType(CodecDirectory.java:217)
at org.jibx.ws.http.servlet.WsServletDelegate.getAcceptableMediaType(WsServletDelegate.java:217)
at org.jibx.ws.http.servlet.WsServletDelegate.doPost(WsServletDelegate.java:121)
at org.jibx.ws.http.servlet.WsServlet.doPost(WsServlet.java:76)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:224)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:987)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1805)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
因此,在请求的http标头中,它们包含一个值为:
的Accepttext/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
当我将它添加到我的SOAPUI中时,我可以重现错误,它可以正常工作而没有“,*; q = .2, / ; q = .2”位。
所以我一直在寻找一种能够接受accept头的“,*; q = .2, / ; q = .2”位的方法。
“,*; q = .2, / ; q = .2”与什么相关?是否与我知道JibX WS不支持的SOAP 1.2有关?虽然客户端说他们正在使用带有spring saaj13实现的SOAP 1.1。
我想可能有一些配置文件,我只是添加这些位,说它们可以被处理,或者忽略它们。
我查看了属性文件中的jibxWS jar,以及我的Tomcat服务器web.xml mime类型,我现在将尝试查看JibX WSServlet的源代码并调查有关spring saaj13的更多信息以查看是否我能找到答案。
任何建议都会受到欢迎。谢谢你的时间。