You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Michael Stumpf <mj...@pobox.com> on 2005/07/11 20:14:59 UTC

Re: Axis isn't autogenerating WSDL for a deployed web service

Since nobody bothered to reply, and I did finally find out what the 
problems were, I'm writing it here for archive purposes for future 
troubleshooting.

There were multiple problems.

1.  If you're accessing Axis with Internet Explorer, you should disable 
the option "Show friendly HTTP error messages".  It doesn't just make it 
"friendly"; it fails to show you the error axis is giving you.

2.  beanMappings that are placed outside a service scope, once deployed, 
don't seem to have any way of being removed except by manually editing 
server-config.wsdd.  So far my solution has been to tie it to a service 
scope.  This has worked for now; the reason I didn't do this originally 
is that I was following examples that made a point of having the mapping 
global.

3.  If IE has not been hiding the msg (see #1), I would have seen 
something that would have led me to the reason that the WSDL file was 
not being auto-generated:  the beanMapping's qname needs to have a 
properly qualified XML namespace prefix.  In my example below, this 
would suffice:  qname="java:ServerStructureList"

Note that #3 isn't crucial as far as I can tell, but it's nice to have 
things running cleanly.  I got my SOAP transactions working before I 
ever fixed the WSDL autogenerate features.

Hope this helps someone out.  Buy me a beer if you're in Austin.


Michael Stumpf wrote:

> New to this.  Been reading a lot, and successfully installed latest
> stable versions of Tomcat, Axis, etc.
>
> I'm building a simple web service to serialize a java object.  I've
> successfully deployed a web service that shows up when viewing at
> http://localhost:8080/axis/sevlet/AxisServlet   .. but when I click the
> link to view the Axis-generated WSDL for this service, I'm getting an
> HTTP 500 - Internal Server error.  One time during my attempts I got
> generated WSDL, but after that (and my later bugfixes for the
> deploy.wsdd), nothing.
>
> I've since deleted Axis's server-config.wsdd and have a new one
> autogenerated to get rid of all spurious <beanMapping> entries, but this
> didn't fix it either.
>
> My deploy.wsdd:
> ---------------------
> <deployment name="testapp" xmlns="http://xml.apache.org/axis/wsdd/"
>        xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
>
>  <service name="FindStructures" provider="java:RPC">
>    <parameter name="className"
> value="com.ibm.mjs.watest.FindStructuresService"/>
>    <parameter name="allowedMethods" value="lookupServer"/>
>  </service>
>
>  <beanMapping qname="ServerStructureList"
> languageSpecificType="java:com.ibm.mjs.watest.ServerStructureList"/>
>
> </deployment>
> ---------------------
>
> My undeploy.wsdd:
>
> ---------------------
> <undeployment name="testapp" xmlns="http://xml.apache.org/axis/wsdd/">
>  <service name="FindStructures"/>
> </undeployment>
> ---------------------
>
> If it shows up as a deployed service, and my client app seems to reach
> it (a System.out.println() statement in my deployed app is printing to
> the catalina.out log with the deserialized, correct, parameters I sent),
> why isn't the auto-gen-WSDL working?
>
> Thanks in advance-
> Michael Stumpf
>
>