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

http://never.mind/SomeService?wsdl


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

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

更新:我刚刚读到某处有一个WSDLGetInterceptor负责处理WSDL请求的获取-我是否可以覆盖那个请求?

最佳答案

我选择覆盖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);
    }
}

10-08 20:13