2009-08-30 11 views
6

Ultimamente ho provato a utilizzare un servizio di ripristino WC .net utilizzando JAX-WS. A causa della sicurezza del servizio, ho dovuto impostare un'autorizzazione dell'intestazione HTTP personalizzata con qualche firma in esso. Questo ho risolto facendo qualcosa di simile a questo:jax-ws: impostazione Content-Type of request

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

Tuttavia, ottengo un'eccezione quando si richiama il servizio:

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) 

E mi sembra che ci potrebbe essere un requisito per la mia richiesta nel servizio essere testo/tipo di contenuto xml. Come posso impostare questo? Ho cercato tanto su Google, e ho letto alcuni documenti, ma non riesco a capirlo. Ovviamente l'eccezione potrebbe anche essere qualcosa di diverso dall'impostazione Content-Type (poiché ho letto che per impostazione predefinita jax-ws usa text/xml) ma non ne sono sicuro.

Grazie in anticipo!

risposta

8

Si ottiene un tipo di contenuto text/html come risposta.

La maggior parte delle volte che ho ricevuto questo errore, è stato che il server ha inviato una pagina di errore html.

Se si dispone di un modo per registrare la risposta, si dovrebbe essere in grado di vedere esattamente qual è il problema.

+0

Grazie per la risposta - quindi pensi che la richiesta sia effettivamente passata al wbservice e torno magari un messaggio di errore sotto forma di html? Questo potrebbe essere in realtà ... –