您好,欢迎访问一九零五行业门户网

Axis2 WebService的配置、发布、调用

准备工作 1. 下载 axis2-1.6.2-bin.zip,axis2-1.6.2-war.zip文件。http://axis.apache.org/axis2/java/core/download.cgi 2. 环境变量配置 axis2_home java_home 3. axis2-1.6.2-war.zip压缩文件中的axis2.war复制到 %tomcat-home%/webapps目录下,然后启动
准备工作1. 下载 axis2-1.6.2-bin.zip,axis2-1.6.2-war.zip文件。http://axis.apache.org/axis2/java/core/download.cgi 
2. 环境变量配置 
axis2_home
java_home
3. axis2-1.6.2-war.zip压缩文件中的axis2.war复制到 %tomcat-home%/webapps目录下,然后启动tomcat
    访问 http://localhost:8080/axis2/ 看是否正常。
点击services会进入service列表页面,当前只有一个version服务。
4. 下载axis2-eclipse-codegen-wizard.zip和axis2-eclipse-service-archiver-wizard.zip 插件
     http://archive.apache.org/dist/ws/axis2/tools/1_4_1/ 
    解压后得到两个文件夹:axis2_codegen_wizard_1.3.0和axis2_service_archiver_1.3.0,拷贝至eclipse\dropins
             注另一种方式,测试不成功,不推荐。下载axis-eclipse-codegen-plugin-1.6.2.zip和axis-eclipse-service-plugin1.6.2.zip文件解压后将plugins复制到%eclipse_home%/plugins/目录下。 http://mirrors.cnnic.cn/apache/axis/axis2/java/core/1.6.2/
5. 安装完成后,ide中选择new -> other 有axis2 wizards,说明插件安装成功。
axis2发布web services一. 工程文件新建axis2service1  java工程;
新建/axis2service1/src/ws/testws.java文件;
package ws;public class testws { public string showname(string name){ return name; } public string getname(){ return axis2service sample; }}
二. aar部署方式1. 手动打包
新建 /axis2service1/deploy文件夹,将/axis2service1/bin/目录下的class下文复制过来;
新建/axis2service1/deploy/meta-inf/services.xml文件
axisservicews.testws
2. 插件打包
在ide中选择new -> other -> axis2 service archiver,点击next;
在class file location:选择axis2service1\bin目录,点击next;
勾选skip wsdl,点击next;
service archiver 选择jar位置,没有jar包就直接点击next;
勾选generate the service xml automatically 自动生成xml file文件,点击next;
service name,输入axisservice(名字可以自己定),然后在class name 中填写要发布的类(全路径),点击load,勾选search declared methods only,点击next;
output file location ,output file name输入artiver文件的名称axisservice。点击finish,提示service archvie generated successfully!表明生成成功。
3. 发布axisservice
axisservice.aar复制到%tomcat-home%/webapps/axis/web-inf/services下。(不打aar包,/axis2service1/deploy/下面复制过去也可以)
打开 http://localhost:8080/axis2/services/listservices 可以看到如下页面
axis2调用web services一. 客户端stub文件生成1. 脚本生成方式
在%axis2_home%/bin/ 目录下执行下面的命令wsdl2java -uri http://localhost:8080/axis2/services/axisservice?wsdl -p ws -s -o stub说明:-p 指定了生成的java类的报名;-o指定了生成的一系列文件保存的目录;在stub/src/ws 自动生成axisservicestub.java
2. 插件生成方式
ide中选择new -> other -> axis2 code generator, 点击next;
勾选generate java source code from a swdl file,点击next;
wsdl file location输入:http://localhost:8080/axis2/services/axisservice?wsdl正确的话,点击next;
指定输入路径,点击next;
提示 all operation completed successfully!生成成功。在d:\src\wc 自动生成了stub一系列文件,其中ws是包名;
注:错误 an error occurred while completing process-java.lang.reflect.invocationtargetexception解决方法
1. 从axis2的lib库中复制geronimo-stax-api_1.0_spec-1.0.1.jar和backport-util- concurrent-3.1.jar
文件到axis2_codegen_wizard_1.3.0的lib目录中,同时修改 axis2_codegen_wizard_1.3.0
下的plugin.xml文件,在文件中中添加:
如没有backport-util-concurrent-3.1.jar,可以从地址:http://backport-jsr166.sourceforge.net/     下载。
2.将 $workspace位置\.metadata\.plugins下目录 axis2_codegen_wizard 删除。
3.在命令行下切换至$eclipse_home目录,然后执行:eclipse –clear。
如还决有问题参考如下解决办法:修改名字,再改回来
二. 客户端调用脚本生成方式为例,插件生成的类似。
1. 新建 java工程 axis2client;
     将%axis2_home%\lib\目录下的 jar包复制到\axis2client\lib\ , 并加入工程引用中,将通过脚本生成的单一axisservicestub.java文件 加入到src\ws、下;
2. 新建testws.java 代码如下
package ws;import java.rmi.remoteexception;public class axis2client { public static void main(string [] args) throws remoteexception{ //初始化stub类 axisservicestub stub = new axisservicestub(); //传递axisservicestub.showname对象,相关参数在这边赋值 axisservicestub.showname command = new axisservicestub.showname(); command.setname(hello!); //取得返回值 string name = stub.showname(command).get_return(); system.out.println(name); }}
3. 调用成功后控制台输出:hello!
其它类似信息

推荐信息