在反向代理后面的axis2 webapp产生错误的位置

时间:2012-03-30 10:32:15

标签: java tomcat soap nginx axis2

Java / Tomcat中的SSL配置就是这样,我配置了一个tomcat6实例来获取来自处理SSL的nginx反向代理的请求,代理到localhost:8080的连接。添加X-Forwarded-For之类的标题可确保端点显示正确的地址,但不能使用正确的协议。客户端(在我的例子中是python-suds)检索WSDL就好了,但是找到了SOAP端口的以下位置:

<wsdl:service name="WebService">
  <wsdl:port name="WebServiceHttpSoap11Endpoint" binding="ns:WebServiceSoap11Binding">
    <soap:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpSoap11Endpoint/"/>
  </wsdl:port>
  <wsdl:port name="WebServiceHttpSoap12Endpoint" binding="ns:WebServiceSoap12Binding">
    <soap12:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpSoap12Endpoint/"/>
  </wsdl:port>
  <wsdl:port name="WebServiceHttpEndpoint" binding="ns:WebServiceHttpBinding">
    <http:address location="http://10.10.3.96/axis2/services/WebService.WebServiceHttpEndpoint/"/>
  </wsdl:port>
</wsdl:service>

我怀疑它会将http://抛出,因为尝试使用它会导致错误并在tomcat的日志中显示以下消息:

org.apache.axis2.AxisFault: The endpoint reference (EPR) for the Operation not found is /axis2/services/WebService.WebServiceHttpSoap11Endpoint/ and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.

有没有办法(在axis2或nginx中)配置它以使其工作?我似乎找不到一种方法来说服axis2生成其端点的位置以包含https://

1 个答案:

答案 0 :(得分:3)

好吧,漫长的谷歌搜索时间终于产生了一个结果:在全局axis2.xml配置文件中添加一个(据我所见)未记录的配置参数会生成正确的工作终点网址:

<parameter name="httpFrontendHostUrl">https://10.10.3.96/axis2/</parameter>