5 Replies Latest reply on Mar 22, 2005 6:11 PM by jason.greene

    Proxy and Web Services

    thorinside

      Hi All,

      I have a JBoss 4.0.1SP1 server running on a Linux box, and I am trying to get my Apache web server on port 80 to proxy to the JBoss which is running on port 9090. I've got Tomcat all happy with the configuration by setting the ProxyHost and ProxyPort for the main http port. This is all good.

      Problem is that when I try to get the WSDL for a web service, AXIS always responds with:

      AXIS error

      No service is available at this URL

      Should I be setting up something special in the ws4ee service somewhere so that it knows about the requested URL? I'm so confused. :)

      -T

        • 1. Re: Proxy and Web Services
          jason.greene

          This could be many things. Does your webservice work on the normal port? Is your apache proxy setup correct (double check your mod_proxy config)?
          Also, are you refering the the http.proxyHost setting, because that is only used when tomcat itself wants to make an http connection outbound. I am assuming you want to go from user->apache->tomcat right?

          -Jason

          • 2. Re: Proxy and Web Services
            thorinside

            Yes, I believe my configuration is correct, since most other tomcat operations do the right thing. For example, Tomcat is correctly returning the network name of the server instead of the local name in URLs. The webservice I'm talking about is the built-in 'Version' webservice... I haven't begun to write my own webservice if I can't get the 'Version' service to work yet. This is a recently downloaded, 'stock' out of the box JBoss.

            The config is something like this: User hits port 80 with the domain 'jboss.mydomain.org' and Apache sees this, and rewrites the URL to '10.0.0.1:9090' which is where JBoss is actually running. Tomcat is configured to know about jboss.mydomain.org and port 80, so it doesn't accidentally return it's internal address of 10.0.0.1:9090 all the time. That seems to work. But AXIS seems confused about this and says there's no web services for the given URL, of course I'll have to dig further and see what URL it was actually passed. Maybe it's getting 10.0.0.1:9090/ URLs and not liking them.

            Thanks for the response. I'll keep looking into it too.

            • 3. Re: Proxy and Web Services
              thorinside

              Okay, I rechecked my Apache configuration, since in the heat of passion I tried so many things and left it as 'working' when I finally started seeing web content. But, it must have been wrong because I got it working now. My virtual host section looks like this, for anyone who's interested:

              <VirtualHost *>
              ServerName jboss.mydomain.org
              ProxyRequests Off
              ProxyPass / http://10.0.0.1:9090/
              ProxyPassReverse / http://10.0.0.1:9090/


              And in my JBoss Tomcat server.xml I did the following:



              The proxyName and proxyPort tells Tomcat that it's currently being proxied, and should return URLs with the proxy's name and port instead of the real physical name and port. Or at least that's what I observe it doing.

              So, while this post isn't exactly on topic for the web services forum, the symptom of AXIS not working is now fixed.

              • 4. Re: Proxy and Web Services
                thorinside

                Evil forum. The Tomcat config should read:

                 <Connector port="9090" address="${jboss.bind.address}"
                 proxyName="jboss.mydomain.org" proxyPort="80"
                 maxThreads="150" maxHttpHeaderSize="8192"
                 minSpareThreads="25" maxSpareThreads="75"
                 enableLookups="false" redirectPort="8443" acceptCount="100"
                 connectionTimeout="20000" disableUploadTimeout="true"/>
                


                • 5. Re: Proxy and Web Services
                  jason.greene

                  Great. Well just so you know there is another configuration file that controls the wsdl generated addresses. Take a look at deploy/jboss-ws4ee.sar/META-INF/jboss-service.xml.

                  -Jason