2009-08-30 7 views
6

J'ai essayé de consommer un service de repos WCF .net en utilisant JAX-WS récemment. En raison de la sécurité du service, je dois définir une autorisation d'en-tête HTTP personnalisée avec une certaine signature. Ce que j'ai résolu en faisant quelque chose comme ceci:jax-ws: paramètre Content-Type de demande

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

Cependant, je reçois une exception lors de l'appel du service:

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) 

Et il me semble qu'il pourrait y avoir une exigence pour ma demande dans le service pour être text/xml content-type. Comment est-ce que je règle ceci? J'ai beaucoup googlé et j'ai lu de la documentation, mais je n'arrive pas à la comprendre. L'exception peut bien sûr être autre chose que le paramètre Content-Type (puisque j'ai lu que par défaut jax-ws utilise text/xml) mais je ne suis pas sûr.

Merci d'avance!

Répondre

8

Vous obtenez un type de contenu text/html en réponse.

La plupart du temps quand j'ai cette erreur, c'est que le serveur envoie une page d'erreur html.

Si vous avez un moyen de consigner la réponse, vous devriez être en mesure de voir exactement quel est le problème.

+0

Merci pour la réponse - donc vous pensez que la demande est effectivement allé à la wbservice et je reçois peut-être un message d'erreur sous la forme de html? Cela pourrait être en fait ... –

Questions connexes