Apache CXF wsdl2java:制作服务 return 原始 WSDL 文件
Apache CXF wsdl2java: make service return original WSDL file
我正在努力提供基于从客户那里收到的一些 WSDL 文件的 Web 服务。如详细描述 here,WSDL 文件 return 在将 ?wsdl
附加到服务 URL 时编辑
http://never.mind/SomeService?wsdl
似乎被 SoapUI 误解了,这再次阻止了客户使用该服务!
我现在希望有人能帮助我理解是否有可能使获取 WSDL 端点 return 成为原始 WSDL 文件而不是某些 Apache CXF 消化版本?
Update:我刚刚在某处读到有一个 WSDLGetInterceptor 负责处理 get WSDL 请求 - 我可以覆盖那个吗?
我选择覆盖 WSDLGetInterceptor
使用的 WSDLGetUtils
class 的 getDocument
方法。我的 utils class 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);
}
}
我正在努力提供基于从客户那里收到的一些 WSDL 文件的 Web 服务。如详细描述 here,WSDL 文件 return 在将 ?wsdl
附加到服务 URL 时编辑
http://never.mind/SomeService?wsdl
似乎被 SoapUI 误解了,这再次阻止了客户使用该服务!
我现在希望有人能帮助我理解是否有可能使获取 WSDL 端点 return 成为原始 WSDL 文件而不是某些 Apache CXF 消化版本?
Update:我刚刚在某处读到有一个 WSDLGetInterceptor 负责处理 get WSDL 请求 - 我可以覆盖那个吗?
我选择覆盖 WSDLGetInterceptor
使用的 WSDLGetUtils
class 的 getDocument
方法。我的 utils class 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);
}
}