Axis2 webapp behind a reverse proxy producing wrong locations

SSL config in Java / Tomcat is what it is, I configured tomcat6 instance to receive requests from nginx reverse proxy handling SSL proxy connections from localhost: 8080. Adding type headers X-Forwarded-For

makes sure the endpoints are displayed with the correct address. but not with the correct protocol. The client (python-suds in my case) fetches the WSDL just fine, but finds the following SOAP ports locations:

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


I suspect it is http://

throwing it away as trying to use this results in an error and the following message in the tomcat log:

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.

Is there a way (in axis2 or nginx) to configure this to make this work? I can't seem to find a way to convince axis 2 to generate the location of its endpoint to include https://



source to share

1 answer

Well, long hours of working with Google finally paid off: adding (as far as I can see) an undocumented config parameter to the global config file axis2.xml

generates the correct workpoint urls:

<parameter name="httpFrontendHostUrl"></parameter>



All Articles