【问题标题】:jax-ws: setting Content-Type of requestjax-ws:设置请求的 Content-Type
【发布时间】:2009-08-30 20:35:05
【问题描述】:

我最近一直在尝试使用 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 内容类型。我该如何设置?我用谷歌搜索了很多,并阅读了一些文档,但我似乎无法弄清楚。例外当然也可能是 Content-Type 设置以外的其他东西(因为我已经读过默认情况下 jax-ws 使用 text/xml),但我不确定。

提前致谢!

【问题讨论】:

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


    【解决方案1】:

    您将得到一个 text/html 内容类型作为响应。

    当我收到这个错误的大多数时候,它是服务器正在发送一个 html 错误页面。

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

    【讨论】:

    • 感谢您的回复 - 所以您认为请求实际上已经发送到 wbservice,我可能会返回 html 形式的错误消息?这实际上可能是……
    猜你喜欢
    • 1970-01-01
    • 2023-03-28
    • 2011-01-23
    • 2012-05-27
    • 2017-03-29
    相关资源
    最近更新 更多