How to run AXIS2 fine on Tomcat behind an Apache server.
I have problem with internet 80 or intranet 8080 wsdl invocation.
Is there anyone who can show me how to do or can tell me where I am wrong?
Thanks in advance.
Marco
1 Adsl internet connection,
1 public ip address: 83.211.93.144,
1 router modem,
1 lan,
1 pc server (internal ip address 192.168.1.10)
On the pc server there are:
1 Apache http server 2.2, 1 Tomcat 6,0.
Tomcat responds port 8080, Apache http server responds to internet at port 80.
I have same http applications on Apache http server that work and you can see
on internet at the address: www.acgcomplementi.com
I have also same web applicationes on Tomcat that respond in the lan to port
8080 and are redirected by Apache Http server on Internet: www.p2p2mpa.com and
respond there on port 80.
To do this I configured a virtual server on the modem router so the requests
that arrive from internet at the address 83.211.93.144 and port 80 are
redirected to the pc server 192.168.1.10:80, and this works.
There, on the pc server, the requests on the port 80 are managed by the Apache
Http server. I worked on the file httpd.conf, and I activated the proxy module
with these comands:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
and I added also these directives:
ProxyPass /p2p2mpa/ http://localhost:8080/p2p2mpa/
ProxyPass /sito/ http://localhost:8080/sito/
ProxyPass /ws_p2p2mpa/ http://localhost:8080/ws_p2p2mpa/
(/sito/ is for www.acgcomplementi.com).
/p2p2mpa/ is for www.p2p2mpa.com
/ws_p2p2mpa/ if for the axis2 webservice that doesn't work.
Till now it is all fine.
Here began the problems.
I developed, using eclipse, a web application that exposes some webservices. I
used axis2.
I placed the war file (ws_p2p2mpa.war) in the webapps Tomcat directory.
If I invoke the the wsdl file in the lan all works fine:
at the address http://192.168.1.10:8080/ws_p2p2mpa/
the axis2 welcom page responds correctly.
At the address
http://192.168.1.10:8080/ws_p2p2mpa/services/Ws?wsdl
Axis2/Tomcat answers with the right wsdl file: it has the right endpoint:
- <wsdl:port name="WsHttpSoap11Endpoint" binding="ns:WsSoap11Binding">
<soap:address
location="http://192.168.1.10:8080/ws_p2p2mpa/services/Ws.WsHttpSoap11Endpoint/"
/>
</wsdl:port>
Instead if I invoke the wsdl file from internet I have some problems:
If I use this address:
http://83.211.93.144/ws_p2p2mpa/
Axis2 responds, I see the Axis2 welcome page but I cannot see correctly the
Axis2 wing images;
if I navigate and I select a link, for example: “Services” it shows and uses
this wrong address:
http://192.168.1.10:8080/ws_p2p2mpa/services/listServices as it was invoked
from the lan and not internet, I aspected:
http://83.211.93.144/ws_p2p2mpa/services/listServices
If I invoke the wsdl and I use this address
http://83.211.93.144/ws_p2p2mpa/services/Ws?wsdl
I see the wsdl file but it has as endpoint address the same it has if it is
invoked from the lan:
http://192.168.1.10:8080/ws_p2p2mpa/services/Ws.WsHttpSoap11Endpoint/
I aspected http://83.211.93.144/ws_p2p2mpa/services/Ws.WsHttpSoap11Endpoint/
Therefore I looked around to find a solution, and I found to manage the
axis2.xml configuration file.
I changed the file
\Apache Software Foundation\Tomcat
6.0\webapps\ws_p2p2mpa\WEB-INF\conf\axis2.xml
in this way:
first, in the transportReceiver section I added this parameter proxyPort = 80:
that is a look of the transposrtReceiver section:
....
- <transportReceiver name="http"
class="org.apache.axis2.transport.http.SimpleHTTPServer">
<parameter name="port">8080</parameter>
<parameter name="proxyPort">80</parameter>
........
but nothing changed.
Two, I added this instruction:
<parameter
name="httpFrontendHostUrl">http://83.211.93.144/ws_p2p2mpa</parameter>
(http without s).
Then I tested it but it doesn't work again:
the end point address in the wsdl file doesn't changed, it is always the same,
if I invoke from internet or lan the end point address it is always
http://192.168.1.10:8080/ws_p2p2mpa/services/Ws.WsHttpSoap11Endpoint/
If I invoke the axis2 welcome page from internet it work fine, instead if I
invoke the axis2 welcome page from the LAN now it doesn't work.
I tried with acxis2 1.3 and tomacat 5.0 and apache server 2.2, then I changed
and I am working now with axis2 1.41 and Tomcat 6.0.
I also added in the httpd.conf the directive:
ProxyPassReverse /ws_p2p2mpa/ http://localhost:8080/ws_p2p2mpa/
It is always the same.
I am a newbie, it is an excercise that I am trying to do, it is not for work
for now.
It 2 months that I have this problem and really I looked all around for a
solution.
Help me please.
Thanks
Marco Andreolli