Jim,
In short, very little. We installed NetCat on the server, which is running the current stable Debain. We then used NetCat to dump the request sent to port 80. Since the client ran correctly outside the firewall, we compared the dump when running the client inside and then outside the firewall. This told us the firewall was stripping SOAPAction from the http header.

We had to use NetCat instead of the tcpmon because the server is in a DMZ with only ssh access.

Relative to the Apache and Mod_JK configuration, their is no difference in the configuration for a webservice vs a jsp/servlet application.

Paul Spencer



Jim Azeltine wrote:
So you found the problem and resolved it, but what did you do? I would like to 
know as our customer uses the same configuration.
Jim Azeltine
  Senior Software Engineer, SAIC

Paul Spencer <[EMAIL PROTECTED]> wrote:
  Found the problem :)

The outbound firewall was stripping the http header SOAPAction, thus causing the error.

Paul Spencer


Paul Spencer wrote:

I am getting the error below when sending a request to my web service that is running on a Tomcat which is frontend by an Apache web server. I suspect this is a configuration error related to passing the HTTP header to Tomcat, but I am not sure what to look for.

Other tid-bits of information:
1) The wsdl is returned without error, i.e. http://foo.com/services/MyWebService?wsdl.

2) The same web service is deployed on Tomcat 5.5.9 without an Apache web server front end. It work correctly.

Version Information:
Debian 2.2.6
Apache v1.3.33
mod_jk v1.2.5
Tomcat v4.1.31
Axis v1.3

**
* Error message
**
Jan 6, 2006 3:09:47 PM org.apache.axis.transport.http.AxisServlet getSoapAction
SEVERE: Generating fault class
AxisFault
faultCode: {http://xml.apache.org/axis/}Client.NoSOAPAction
faultSubcode:
faultString: no SOAPAction header!
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:no SOAPAction header!
at org.apache.axis.transport.http.AxisServlet.getSoapAction(AxisServlet.java:1013) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:678)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)


Paul Spencer






Reply via email to