您的位置:首页 > 其它

采用axis2 pojo开发webservice要点

2013-06-20 14:14 232 查看
服务器开发

此处以新建一个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

2,在src下新建HelloWorldService服务端文件 严重注意:不能设置package

public class HelloWorld {

public String sayHello() {

return "hello,Axis2";

}

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文件生成stub

d:\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) {

try {

HelloWorldStub stub=new HelloWorldStub("http://localhost:8080/axis2test/services/HelloWorld");

SayHelloResponse res= stub.sayHello();

System.out.println(res.get_return());

} catch (AxisFault e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (RemoteException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}



}

eclipse直接在web工程右键上选择run on server发布后的webapp位置

web工程workspace-path\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps

参考网页

WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: