views:

319

answers:

3

I've been trying to add a web reference to a webservice located on an Apache Tomcat web server but I always receive an "HTTP status 503: Service Unavailable". I've been told that the problem is that Tomcat doesn't allow 2 HTTP parameters when requesting the wsdl.

The URL I'm trying to retrieve the wsdl looks like:

http://208.35.164.35:1234/abc/soap/postman/xmlservice?com.TestCorp.abc.key=TEST_KEY

The upshot is that I can't add the webservice reference using the "Add Service Reference" dialog box no matter what I do. Is it true that Tomcat can't take extra parameters when requesting wsdl? Does anyone know of a way to work around this?

A: 

This isn't really an answer, but maybe it'll help you in your googling. It's not tomcat that's generating the wsdl, it's some webapp installed on tomcat that implements soap. It's very likely to be Apache Axis.

Usually you get wsdls from Axis with urls of the form http://server/path/webservice?wsdl

Jeremy Huiskamp
A: 

Thanks to Jeremy for his reply.

He was right that it wasn't Tomcat that generated the wsdl - in this case it was JAX-WS that generated it. However, given the way this Tomcat server was configured though I had to add a http header to get to the wsdl since Tomcat won't take 2 parameters in the query string when you are trying to discover the wsdl. Plus I had to set useDefaultWebProxy="false" in my app.config file.

Daver
A: 

Once I added the http header everything worked. In case you are interested I used the following link to help me out:

http://msmvps.com/blogs/paulomorgado/archive/2007/04/27/wcf-building-an-http-user-agent-message-inspector.aspx

Daver