采用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
此处以新建一个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
相关文章推荐
- WebService从零到项目开发使用3—技术研究之Axis2 POJO开发Web服务
- Axis2 java WebServices开发三POJO (续)
- 采用RPC方式和document方式 开发Axis2的WebService客户端
- Axis2 java WebServices开发三POJO
- WebService从零到项目开发使用3—技术研究之Axis2 POJO开发Web服务
- axis2开发webservice之(二进制文件传输)
- 项目采用asp.net mvc开发过程中遇到的问题。
- 用Axis2开发web service #4 - Axis2 Style Interceptor
- Android开发入门之采用Pull解析器解析和生成XML内容
- 采用OSGi框架开发项目的十个问题
- WebService大讲堂之Axis2(1):用POJO实现0配置的WebService
- Axis2项目开发和部署发布
- Axis2与Eclipse整合开发Web Service之一
- 当下大部分互联网创业公司为什么都愿意采用增量模型来做开发?
- 使用axis2进行WebService的开发
- axis2开发webservice之异步调用WebService
- Python采用Django开发自己的博客系统
- axis2开发webservice之编写Axis2模块(Module)
- 刚刚看到的一篇写软件开发方法的文章,收藏一下--采用XP方法使软件项目获得更大成功
- AXIS2开发webservice步骤