我们可以将发布测试成功的WebService接口转换成WSDL文件,以便查看该WebService更详细的信息,具体代码如下:
import org.apache.cxf.tools.java2ws.JavaToWS; import org.nova.crm.services.UserService; public class Java2Wsdl { /** * @param args */ private Class<?> className; public String[] args1,args2,args3; /** * 构造函数 * @param args 要生成WSDL的Java类 */ public Java2Wsdl(Class<?> className) { this.className = className; //根据Hello.class生成Hello.wsdl,生成的wsdl文件放在resource目录下 args1=new String[]{"-wsdl","-d","./resource",this.className.getName()}; //根据Hello.class生成Hello.wsdl,生成的文件放在根目录下的.example下 args2=new String[]{"-wsdl","-cp", "./example",this.className.getName()}; // 根据Hello.class生成wsdl文件,文件命名为myHello.wsdl,放在根目录下 args3=new String[]{"-o","myHello.wsdl","-wsdl",this.className.getName()}; } /** * 构造函数 * @param className 要生成WSDL的Java类 * @param wsdlFileName 要生成WSDL的文件名称(不包含扩展名) */ public Java2Wsdl(Class<?> className,String wsdlFileName) { this.className = className; //根据Hello.class生成Hello.wsdl,生成的wsdl文件放在resource目录下 args1=new String[]{"-wsdl","-d","./resource",this.className.getName()}; //根据Hello.class生成Hello.wsdl,生成的文件放在根目录下的.example下 args2=new String[]{"-wsdl","-cp", "./example",this.className.getName()}; // 根据Hello.class生成wsdl文件,文件命名为myHello.wsdl,放在根目录下 args3=new String[]{"-o",wsdlFileName+".wsdl","-wsdl",this.className.getName()}; } public void java2WSDL(String[] args){ JavaToWS javaToWS = new JavaToWS(args); try { javaToWS.run(); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { Java2Wsdl j2WSDL = new Java2Wsdl(UserService.class, "user"); j2WSDL.java2WSDL(j2WSDL.args3); System.out.println("WSDL文件已生成,请刷新项目!"); } }
将此段代码以Java应用程序的方式运行后刷新项目,就可以看到在项目的根目录下的user.wsdl。
user.wsdl文件的部分代码如下:
可以看到loginUser这个方法有两个参数,分别为username和password,这两个参数才是调用该WebService中loginUser方法时需要给出的参数名,在调用Webservice时会用到。