JaxWSPortProxyFactoryBean - 忽略无效响应Content-Type

时间:2015-02-23 16:58:00

标签: java spring jax-ws

我正在使用JaxWSPortProxyFactoryBean生成的端口代理。

我给了它我的WSDL文件,据我所知,它正确地接触到了服务。我有另外一种服务以类似的方式配置。

我遇到的问题是这项特殊服务似乎执行不力。当我发送请求时,它会使用Content-Type text代替text/xml进行回复。有些东西正在接受该响应并抛出异常,因为它不是它所期望的内容类型。

经过一番广泛的谷歌搜索后,我发现了HandlerResolver。我尝试使用自定义Handler

public class ContentTypeHandler implements SOAPHandler<SOAPMessageContext> {
    @Override public boolean handleMessage(SOAPMessageContext context) {
        //many other things tried in here
        Map<String, List<String>> theHeaders = new HashMap<String, List<String>>();
        theHeaders.put("Accept", Collections.singletonList("application/x-gzip"));
        context.put(MessageContext.HTTP_REQUEST_HEADERS, theHeaders);
    }
}

我还在处理程序的close方法中设置了一个断点。我可以看到HTTP响应标头,服务器正在用200响应我。所以我到达服务器就好了,但它发送了错误的内容类型。我无法弄清楚我的处理程序在何处或如何更改预期的内容类型。

我期望调用处理程序的handleFault方法,这是我处理该问题的地方。但是,唉,这个功能甚至从未被调用过。所以在我有机会告诉它之前,事情正在爆发。

0 个答案:

没有答案