WSDL(Web Service Description Language),定义了类以及类的成员函数。AXIS2 有wsdl2Java.bat 用于将wsdl生成java工程。开发工具 IntelliJ IDEA 也可以从WSDL生成一个package,里面有已声明的各个类的定义,以及他们的成员函数声明。运行 IntelliJ IDEA ,建立一个java工程。首先需要配置工程,如果网速快, IntelliJ IDEA 会自动从官网下载axis等库,如果下载不了只有自己配置。如下图:
工程默认配置是不会生成WAR包,需要勾选【Create Web facet war file】。
将依赖的jar都输出到package里,这样这些依赖的jar都会被打包进WAR包里,在其他机子上进行部署的时候可以简化工作,否则可以运行web service时候,会提示某个类找不到。
使用菜单【Tools】->【WebServices】->【Generate java code from wsdl or wadl】 从wsdl生成java工程。
选中wsdl文件, 【Package prefix】为包的名称,【Output mode】需要选中Server,因为生成Server端 勾选【Generate classes for schema arrays】 会生成数组类,而不是用类似 int[]方式直接使用数组,勾选【Generate unreferenced elements] 对于WSDL中只声明,但未使用的类,也会生成对应的java代码。
生成后的java工程,如下图,需要在BindingKindleServiceSoapImpl.java中实现registerKindle函数,转换生成的工程只是函数定义,没有实现功能,需要手工填写实现代码。
使用【Build】->【Rebuild project】编译工程,将KindleService\out目录下的KindleService.war拷贝到tomcat\webapps目录下,运行tomcat,使用:8080/KindleService/services/KindleService?wsdl 访问该web service。