jax-ws: настройка Content-Type запроса - PullRequest
6 голосов
/ 31 августа 2009

В последнее время я пытался использовать службу отдыха .net WCF, используя JAX-WS. Из-за безопасности службы, я должен установить пользовательскую авторизацию заголовка HTTP с некоторой подписью в нем. Это я решил, сделав что-то вроде этого:

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

Однако при вызове службы я получаю исключение:

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)

И мне кажется, что может потребоваться, чтобы мой запрос в сервисе был text / xml content-type. Как мне установить это? Я много гуглил и читал некоторую документацию, но не могу понять это. Исключением, конечно, может быть что-то иное, чем параметр Content-Type (поскольку я читал, что по умолчанию jax-ws использует text / xml), но я не уверен.

Заранее спасибо!

1 Ответ

8 голосов
/ 31 августа 2009

Вы получаете текстовый / html тип контента в ответ.

В большинстве случаев, когда я получал эту ошибку, сервер отправлял html страницу с ошибкой.

Если у вас есть способ зарегистрировать ответ, вы должны точно увидеть, в чем проблема.

...