jax-ws: настройка типа содержимого запроса
в последнее время я пытаюсь использовать службу .NET WCF rest с помощью 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. Как это установить? Я погуглил много, и прочитал некоторые документы, но я не могу понять это. Исключением, конечно, может быть что-то еще, кроме параметра типа контента (поскольку я прочитал, что по умолчанию jax-ws использует text/xml), но я не уверен.
спасибо заранее!
1 ответов
вы получаете тип содержимого text/html в качестве ответа.
большую часть времени, когда я получил эту ошибку, это было то, что сервер отправляет страницу ошибок html.
Если у вас есть способ зарегистрировать ответ, вы должны точно видеть, в чем проблема.