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

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:找不到的操作的端点引用(EPR)为/axis2/services/WebService.WebServiceHttpSoap11Endpoint/,并且WSA Action = null.如果此EPR以前可以访问,请联系服务器管理员.

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

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

< parameter name =“ httpFrontendHostUrl”> https://10.10.3.96/axis2/\u0026lt; / parameter>

转载注明原文:java-反向代理后面的axis2 webapp产生错误的位置 - 代码日志