此处以新建一个web工程为起始点:
1,将axis2.war下:axis2-web文件夹,WEB-INF下conf,lib,modules,web.xml复制到web工程同级目录下;classes下的org.apache.axis2.webapp/XXXservlet源文件(此处反编译过来的)复制到src下。
最少必需jar包如下
XmlSchema-1.4.3.jar
activation-1.1.jar
axiom-api-1.2.11.jar
axiom-dom-1.2.11.jar
axiom-impl-1.2.11.jar
axis2-adb-1.5.5.jar
axis2-jaxws-1.5.5.jar
axis2-kernel-1.5.5.jar
axis2-transport-http-1.5.5.jar
axis2-transport-local-1.5.5.jar
commons-codec-1.3.jar
commons-fileupload-1.2.jar
commons-httpclient-3.1.jar
commons-io-1.4.jar
commons-logging-1.1.1.jar
geronimo-jaxws_2.1_spec-1.0.jar
geronimo-stax-api_1.0_spec-1.0.1.jar
geronimo-ws-metadata_2.0_spec-1.1.2.jar
httpcore-4.0.jar
mail-1.4.jar
neethi-2.0.5.jar
woden-api-1.0M8.jar
wsdl4j-1.6.2.jar
wstx-asl-3.2.9.jar
3,将HelloWorldService字节码文件复制到WEB-INF/pojo下(conf/axis2.xml,默认此文件夹下的字节码部署为webservice已经开启)
4,访问http://localhost:8080/axis2test/services/HelloWorld?wsdl 成功
如果直接访问http://localhost:8080/axis2test/services/HelloWorld仍然会报The endpoint reference (EPR) for the Operation not found is /axis2test/services/HelloWorld and the WSA Action = null的提示,此不影响后面使用。
首先配置环境变量AXIS2_HOME到yourlocalpath\axis2-1.5.5
然后添加类路径set path=%path%;%AXIS2_HOME%\BIN;
做了准备工作后,接下来:
1,生成wsdl文件
d:\axis2test\build\classes>java2wsdl -cn HelloWorld
2,根据wsdl文件生成stubd:\axis2test\build\classes>wsdl2java -uri http://localhost:8080/axis2test/services/HelloWorld?wsdl -p client -s -o stub
注:
-s若不保留,生成stub中会采用callbackhandler方式。但是此处并没有生成这个回调函数类因此报错。
-uri此处直接用网络路径wsdl,采用本地wsdl时工作不正常可能需要修改,缺少.XXXHttpSoap12Endpoint/后缀。
-p指定包结构,-o指定代码保存路径。
3,测试访问webservice
public static void main(String[] args) {}
eclipse直接在web工程右键上选择run on server发布后的webapp位置
web工程workspace-path\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps
参考网页
WebService大讲堂之Axis2(1):用POJO实现0配置的WebService