1

Tomcat 7.0.25 と JibxWS を使用して、opentravel.org OTA 指定の XML メッセージに関連する SOAP メッセージを受け入れる Web サービスがあります。

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 ヘッダーには、次の値を持つ Accept が含まれています。

text/xml, text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2

これを SOAPUI に追加すると、エラーを再現できます。「, *; q=.2, / ; q=.2」ビットがなくても問題なく動作します。

そのため、accepts ヘッダーの ", *; 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 について詳しく調べて、見つけられるかどうかを確認します。答え。

どんな提案でも大歓迎です。御時間ありがとうございます。

4

0 に答える 0