6

最近、JAX-WSを使用して.netWCFRESTサービスを利用しようとしています。サービスのセキュリティのため、署名を含むカスタムHTTPヘッダーAuthorizationを設定する必要があります。これは私がこのようなことをすることによって解決しました:

BindingProvider bp = (BindingProvider) port;
bp.getRequestContext().put(MessageContext.HTTP_REQUEST_HEADERS,
                                Collections.singletonMap("Authorization",Collections.singletonList(authHeader)));

ただし、サービスを呼び出すと例外が発生します。

com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/html; charset=UTF-8 Supported ones are: [text/xml]
com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:284)
com.sun.xml.internal.ws.encoding.StreamSOAPCodec.decode(StreamSOAPCodec.java:118)
com.sun.xml.internal.ws.encoding.SOAPBindingCodec.decode(SOAPBindingCodec.java:278)
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.process(HttpTransportPipe.java:180)
com.sun.xml.internal.ws.transport.http.client.HttpTransportPipe.processRequest(HttpTransportPipe.java:83)
com.sun.xml.internal.ws.transport.DeferredTransportPipe.processRequest(DeferredTransportPipe.java:105)

そして、サービスでの私のリクエストはtext /xmlcontent-typeである必要があるように思われます。これを設定するにはどうすればよいですか?私はたくさんグーグルで検索し、いくつかのドキュメントを読みましたが、それを理解できないようです。もちろん、例外はContent-Type設定以外のものである可能性もあります(デフォルトでjax-wsはtext / xmlを使用することを読んだため)が、よくわかりません。

前もって感謝します!

4

1 に答える 1

9

応答としてtext/htmlコンテンツタイプが返されます。

このエラーが発生するほとんどの場合、サーバーがhtmlエラーページを送信していることが原因です。

応答をログに記録する方法がある場合は、問題が何であるかを正確に確認できるはずです。

于 2009-08-30T21:41:18.320 に答える