2009-08-30 77 views
6

我一直在嘗試使用最近使用JAX-WS的.net WCF rest服務。由於服務的安全性,我必須在其中設置一個自定義的HTTP頭授權。這我已經做這樣解決:jax-ws:設置內容類型的請求

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/xml content-type。我如何設置?我搜索了很多,並閱讀了一些文檔,但我似乎無法弄清楚。這個異常當然也可以是Content-Type設置以外的東西(因爲我已經閱讀了默認的jax-ws使用text/xml),但我不確定。

在此先感謝!

回答

8

您正在收到一個text/html內容類型作爲迴應。

大部分時間,當我有這個錯誤,它一直是該服務器發送一個HTML錯誤頁面。

如果您有辦法記錄響應,您應該能夠確切地看到問題所在。

+0

感謝您的回覆 - 所以您認爲請求實際上轉到了wbservice,並且我回來了可能是html形式的錯誤消息?其實可能是...... – 2009-08-30 22:19:31