Apache CXF wsdl2java:使服务返回原始WSDL文件

时间:2015-04-08 23:45:30

标签: java apache wsdl cxf wsdl2java

我正在努力提供基于从客户收到的一些WSDL文件的Web服务。如详细信息here中所述,将?wsdl附加到服务URL时返回的WSDL文件,如

http://never.mind/SomeService?wsdl

似乎被SoapUI误解了,这又阻止了客户使用该服务!

我现在希望有人能帮助我理解是否可以让get WSDL端点返回原始WSDL文件而不是某些 Apache CXF 消化版本?

更新 :我刚刚读到某个地方有一个WSDLGetInterceptor来处理get WSDL请求 - 我可以覆盖那个吗?

1 个答案:

答案 0 :(得分:0)

我选择覆盖getDocument使用的WSDLGetUtils类的WSDLGetInterceptor方法。我的版本的utils类MyWSDLGetUtils通过这个拦截器付诸行动:

public class WsdlGetSoapInterceptor extends AbstractSoapInterceptor {
    public WsdlGetSoapInterceptor() {
        super(Phase.READ);
        addBefore(WSDLGetInterceptor.class.getName());
    }

    /** {@inheritDoc} */
    @Override
    public void handleMessage(final SoapMessage message) throws Fault {
        message.setContextualProperty(WSDLGetUtils.class.getName(), MyWSDLGetUtils.Instance);
    }
}