2009-08-30 14 views
6

Son zamanlarda JAX-WS kullanarak bir. Net WCF dinlenme servisi kullanmaya çalışıyorum. Hizmetin güvenliği nedeniyle, içinde bir imza ile özel bir HTTP başlık Yetkilendirme ayarlamak zorunda. Bu Böyle bir şey yaparak çözdük: Ancakjax-ws: ayar İçeriğin Türü

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

, hizmet çağrılırken istisna almak:

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) 

Ve benim istek için bir gereklilik olabileceğini geliyor bana hizmette metin/xml içerik türü. Bunu nasıl ayarlayabilirim? Çok fazla googledim ve bazı belgeleri okudum ama bunu anlayamıyorum. Bunun istisnası, elbette, Content-Type (İçerik Türü) ayarından başka bir şey de olabilirdi (bunu jax-ws tarafından varsayılan olarak okumuştum çünkü text/xml) ama emin değilim.

Şimdiden teşekkürler!

cevap

8

Yanıt olarak bir metin/html içerik türü alıyorsunuz.

Bu hatayı aldığım çoğu zaman, sunucunun bir html hata sayfası gönderiyor olmasıydı.

Yanıtı kaydetmenin bir yolu varsa, sorunun ne olduğunu tam olarak görebilmeniz gerekir.

+0

Cevabınız için teşekkür ederiz - bu nedenle isteğin gerçekten wbservice'e gittiğini ve belki de html biçiminde bir hata mesajını geri aldığımı düşünüyorsunuz? Bu aslında olabilir ... –