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!
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à ... –