-
1. Re: Generate wsdl from JSR 181 POJO
monowai Feb 14, 2007 10:32 PM (in response to dannox02)I too am now strugling with this. Seems to be that the Axis project bundled one - Java2WSDL - but JBoss is no longer supporting that release (ws4?) in the jboss-ws version shipping since AS 4.0.4.
It would be nice if the creation of WSDL files, or lack there of, were a little more clearly documented in what's offered. Even if it was just a simple NO! it would save a bit of searching :)
Seems to be nothing in the Wiki FAQ. my search continues.... -
2. Re: Generate wsdl from JSR 181 POJO
monowai Feb 14, 2007 10:44 PM (in response to dannox02)Having just posted that, checkout http://www.soapui.org, it may help you on the way.
-
3. Re: Generate wsdl from JSR 181 POJO
monowai Feb 15, 2007 7:45 PM (in response to dannox02)I assume by the deafening silence on this, that this is either a really stupid question, or we're the only suckers doing this ¯\(°_o)/¯
Here's how it works for me. Create a file called wstools-java-to-wsdl.xml based upon wstools-config.xml but have it include the <java-wsdl> tags. Here is an example based on the 181ejb example:<java-wsdl> <service name="TestService" style="rpc" endpoint="org.jboss.test.ws.jaxws.samples.jsr181ejb.EndpointInterface"/> <namespaces target-namespace="http://org.jboss.ws/samples/jsr181ejb" type-namespace="http://org.jboss.ws/samples/jsr181ejb/types"/> <mapping file="jaxrpc-mapping.xml"/> <webservices servlet-link="TrivialEndpoint"/> </java-wsdl>
Then, run the wstools with the following arguments:
-cp [FULL_PATH_TO_CLASS_FILE] -config ./resources/wstools-config.xml -dest ./resources/META-INF
My paths are relative to the folder jbossws-samples-1.0.4.GA\jaxws\jsr181ejb folder.
When run, it will create the META-INF/wsdl/TestServices.wsdl file.
It seems that wstools is not selective in what it creates. If you specify <java-wsdl> in your main wstools-config file, and you run the JBOSS sample ANT build files, then the WSDL will be recreated each time, overwriting your <soap:address location=.../> tag, which is not what you probably want to happen. I haven't looked in to how this works yet.
Likewise if the .wsdl file doesn't exist, then when you run your java2wsdl command, it will error complaining that it "can't load wsdl file" if your config contains the <wsdl-java> tags; Bit of a circular refrence going on there!
hth -
4. Re: Generate wsdl from JSR 181 POJO
dwin Feb 15, 2007 9:52 PM (in response to dannox02)To make it easier, you guys may want to consider using SOAPUI
http://www.soapui.org/jbossws/index.html
if you use eclipse, you simply right click on the POJO and generate the webservice from it. -
5. Re: Generate wsdl from JSR 181 POJO
monowai Feb 16, 2007 3:50 PM (in response to dannox02)Indeed. Still it's nice to know what's going on behind the scenes, and a good UI is not really a substitute for clear doco.
I'm an Intellij user and with these IDE's being the memory hogs they are, running eclipse simply to maintain a few XML files is a bit of a pain; Soap's IntelliJ support is pretty basic, so I'll continue with the full UI I guess.
On the side, having just checked out the source for SOAPUI - and most of the jboss projects - it really feels like stepping back in time using ANT over Maven; All that configuration in your IDE, it's Like going from an automatic car to a manual. Geeze I've lost track of how many commons-collections and jaxb jars I've got lying around for all these o/s projects. Maven's on demand centralized repository structure is pure magic.
Oh well. The fun continues. -
6. Re: Generate wsdl from JSR 181 POJO
allantodd Feb 26, 2007 6:22 AM (in response to dannox02)Hi,
I've been looking at this too over the last few days. The easiest way I can find is to do the following:
1) Compile your annotated JSR 181 pojo
2) Create a war file containing just the pojo class and web.xml
3) Deploy the war file and use your browser to get the WSDL by browsing to, for example, http://localhost:8080/jaxws-samples-jsr181pojo/TestService?wsdl
4) Save the WSDL and use this to generate the endpoint interface, JAX-RPC mapping, etc as per the example in the JBossWS user guide.
If you look at the war file created by the JSR181 POJO example, you will see that it doesn't include the supplied WSDL file. The WSDL file is provided just for use by wstools, and is basically identical to the one you will get from your browser.jar tvf output/libs/jaxws-samples-jsr181pojo.war META-INF/ META-INF/MANIFEST.MF WEB-INF/ WEB-INF/web.xml WEB-INF/classes/ WEB-INF/classes/org/ WEB-INF/classes/org/jboss/ WEB-INF/classes/org/jboss/test/ WEB-INF/classes/org/jboss/test/ws/ WEB-INF/classes/org/jboss/test/ws/jaxws/ WEB-INF/classes/org/jboss/test/ws/jaxws/samples/ WEB-INF/classes/org/jboss/test/ws/jaxws/samples/jsr181pojo/ WEB-INF/classes/org/jboss/test/ws/jaxws/samples/jsr181pojo/JSEBean01.class
It ought to be possible to get hold of the WSDL some other way, but I haven't figured it out yet. A bit of a shortcoming in the example I think. -
7. Re: Generate wsdl from JSR 181 POJO
allantodd Feb 26, 2007 9:49 AM (in response to dannox02)Two more comments to make about this:
1) In wstools-config.xml, "location" can be a URL, so you don't need to save the WSDL to a file.
2) In wstools-config.xml, you might need to substitute "location" for "file" depending on your version of jbossws-client.jar. The version supplied with JBoss 4.0.5 GA expects "file". The version (in the "thirdparty" directory) which the example compiles against expects "location". -
8. Re: Generate wsdl from JSR 181 POJO
thomas.diesler Mar 1, 2007 10:20 AM (in response to dannox02)This should be fixed in jbossws-1.2.0
-
9. Re: Generate wsdl from JSR 181 POJO
monowai Mar 7, 2007 12:46 AM (in response to dannox02)"thomas.diesler@jboss.com" wrote:
This should be fixed in jbossws-1.2.0
Having moved to 1.2, things seem a lot smoother. thanks for all the effort Thomas, I can only imagine what goes in to getting this right.
wsproduce and wsconsume seem to do a fine job and the reduced level of annotations to get things right is a real boon.
Allan's suggestions were also valuable. Obtaining the wsdl straight from the server makes a lot of sense, and the fact you don't need to generate this to deploy your webservices is v. useful
cheers all