要求
需要调用具有 wsdl 的 web 服务,该服务不会通过浏览器打开。
我有一个 wsdl 文档,其中给出了一个虚拟端点。
一旦生成了存根类等,应在运行时更改端点。必须调用第三方方法,该方法将在 SOAP 消息中添加标头,此方法仅接受 SOAP 消息,必须从我们应该添加到流中的 SoapHandler 调用此方法。
我已经尝试过所有以下内容
Axis 2
该服务与 Axis2 配合良好,除了我只能访问处理程序中的 AxisMesage 而不能访问 SOAP 消息,因此我无法调用我的第三方方法失败的问题
Axis 1.4 服务运行良好,我可以访问 SOAP 消息,我可以使用它来调用第三方方法
Apache CXF、JAX-WS 等
由于 wsdl 不可用,如果我使用新的 wsdl 端点初始化服务类,或者如果我通过 bindingProvider 设置端点,则会引发异常,因此我无法调用服务。
问题
由于 Axis 1.4 很旧,因此普遍认为远离它。
Axis 2 很好,除了 AxisMessage 问题,有没有办法在我添加到 Axis 的处理程序中访问 SoapMessage。我能够添加的处理程序只是 Axis2 处理程序
在 CXF 和 JAX-WS 中,我可以添加我有 SoapMessage 的通用处理程序,但是当服务类被初始化或使用 BindingProvider 设置时它们会失败
任何建议
谢谢
查理