We have two ways to develop a web service, start with the XML Schema/WSDL contract first followed by the Java code second, or start with Java code first followed by WSDL second, however, the recommended way is to use contract-first mode, then translate the WSDL to the the Java stub code by using wsdl2java utility tool.
wsdl2java - takes a WSDL document and generates fully annotated Java code from which to implement a service. wsdl2java can generate an Ant based makefile to build your application, the following steps will demo how to do.
1. Import the following dependency jars to classpath in Ant.
<file name=”jaxb-xjc.jar”/><!– dependency of cxf –>
<file name=”velocity.jar”/><!– dependency of cxf –>
<file name=”aopalliance.jar”/><!– dependency of cxf –>
<file name=”asm.jar”/><!– dependency of cxf –>
<file name=”cxf.jar”/>
<file name=”FastInfoset.jar”/><!– dependency of cxf –>
….
2. Use ant target to generate Java code, This below is an example.
<target name="generate_wsdl" depends="init"> <mkdir dir="${build.gen}"/> <java classname="org.apache.cxf.tools.wsdlto.WSDLToJava" fork="true"> <arg value="-d"/> <arg value="${build.gen}"/> <arg value="-p"/> <arg value="com.asjava> <arg value="-ant"/> <arg value="${main.res}/asjava.wsdl"/> <classpath> <path refid="main.cp"/> </classpath> </java> </target>
${build.gen}
specifies the directory into which the generated code files are written..
${main.res}/asjava.wsdl
specifics the path and name of the WSDL file to use in generating the code
main.cp
is the classpath defined and used in ant.
<arg value="com.asjava>
specifics the package name to organize these newly generated sources.