加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

采用axis2 pojo开发webservice要点

发布时间:2020-12-17 00:16:35 所属栏目:安全 来源:网络整理
导读:服务器开发 此处以新建一个web工程为起始点: 1,将axis2.war下:axis2-web文件夹,WEB-INF下conf,lib,modules,web.xml复制到web工程同级目录下; classes下的org.apache.axis2.webapp/XXXservlet源文件(此处反编译过来的)复制到src下。 最少必需jar包如下
服务器开发

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

然后添加类路径set path=%path%;%AXIS2_HOME%BIN;

做了准备工作后,接下来:

1,生成wsdl文件

d:axis2testbuildclasses>java2wsdl -cn HelloWorld

2,根据wsdl文件生成stub

d:axis2testbuildclasses>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.pluginsorg.eclipse.wst.server.coretmp1wtpwebapps


参考网页

WebService大讲堂之Axis2(1):用POJO实现0配置的WebService

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读