2009-08-30 9 views
6

Próbowałem ostatnio skorzystać z usługi odtwarzania WC .NET przy użyciu JAX-WS. Ze względu na bezpieczeństwo usługi muszę ustawić niestandardową autoryzację nagłówka HTTP z pewną sygnaturą. To ja już rozwiązany przez robi coś takiego:jax-ws: setting Content-Type of request

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

jednak uzyskać wyjątek podczas wywoływania usługi:

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) 

I wydaje mi się, że może istnieć zapotrzebowanie na moją prośbę w usłudze o typ zawartości text/xml. Jak to ustawić? Dużo googlowałem i przeczytałem dokumentację, ale nie mogę tego zrozumieć. Wyjątkiem może być oczywiście coś innego niż ustawienie typu zawartości (ponieważ czytałem, że domyślnie jax-ws używa text/xml), ale nie jestem pewien.

Z góry dziękuję!

Odpowiedz

8

Otrzymujesz wiadomość tekstową/treści HTML z powrotem jako odpowiedź.

W większości przypadków, gdy mam ten błąd, serwer wysyła stronę błędu html.

Jeśli masz sposób rejestrowania odpowiedzi, powinieneś być w stanie dokładnie zobaczyć, jaki jest problem.

+0

Dziękuję za odpowiedź - więc uważasz, że żądanie rzeczywiście trafiło do usługi wbservice i otrzymam z powrotem komunikat o błędzie w postaci html? To może być ... –