jax-ws:设置Content-Type请求

时间:2009-08-30 20:35:06

标签: java wcf web-services client jax-ws

我最近一直在尝试使用JAX-WS来使用.net WCF休息服务。由于服务的安全性,我必须设置一个带有一些签名的自定义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内容类型。我该如何设置?我已经google了很多,并阅读了一些文档,但我似乎无法弄明白。当然,异常也可能是Content-Type设置之外的其他内容(因为我已经读过,默认情况下jax-ws使用text / xml)但是我不确定。

提前致谢!

1 个答案:

答案 0 :(得分:8)

您将获得text / html内容类型作为回复。

大多数情况下,当我收到此错误时,服务器发送的是html错误页面。

如果您有办法记录响应,您应该能够确切地看到问题所在。