使用axis2 部署webservice服务

来源:互联网 发布:美丽折淘客软件下载 编辑:程序博客网 时间:2024/06/05 05:26

部署webservice服务

在网上找了下,大概有三种方法

1 有在tomcat下部署axis2 包,再将class文件打包成arr包部署

2 在myeclipse中下载axis2插件直接转类文件为wsdl文件的(没有配置成功)

3 在web中引用axis2 jar包,并做相关配置.

方式2 没有调试成功,

方式1 不知道什么情况需要这种应用,发布和更新都不太方便.

在下面就介绍下方式3

参考帖子http://jingyan.baidu.com/article/a3761b2bbe092c1576f9aa29.html

 

本程序在myeclipse6.5 ,tomcat6,jdk1.6下调试成功

1 在axis2的官网下载axis2.war包 http://axis.apache.org/axis2/java/core/

2 新建一个web应用工程名Axis2Test。

3 解压axis2.war文件,conflibmodules复制到工程中的WEB-INF目录中,axis2-web建议也放到工程WebRoot目录下,因为如果调用webservice失败,没有该文件,系统会报错

加入文件后目录结构如下



4 建立HelloServcieNew.java文件,内容如下:

package cn.lr.service;public class HelloServiceNew {  public String sayHelloNew(){           return "hello,lr";      }                  public String sayHelloToPersonNew(String name){         if(name==null){           name = "nobody";      }                      return "hello,"+name;      }       public void updateData(String data){         System.out.println(data+"更新说明");     }  }


5 建立service文件,并按照目录结构建立services.xml文件

目录结构见上图

<?xml version="1.0" encoding="UTF-8"?><service name="HelloService">    <description>        Web Service例子    </description>    <parameter name="ServiceClass">        cn.lr.service.HelloServiceNew    </parameter>    <messageReceivers>        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"            class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />        <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"            class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />    </messageReceivers></service>
对应关系如图



6 修改web.xml文件

<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">  <welcome-file-list>    <welcome-file>index.jsp</welcome-file>  </welcome-file-list>  <servlet>        <servlet-name>AxisServlet</servlet-name>        <servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class>        <load-on-startup>1</load-on-startup>    </servlet>    <servlet-mapping>        <servlet-name>AxisServlet</servlet-name>        <url-pattern>/services/*</url-pattern>    </servlet-mapping>  </web-app>

增加红色线部分


7 配置后部署tomcat启动服务 访问http://localhost:8080/Axis2Test/services/HelloService?wsdl 提示如下



8 访问测试

  新建工程AxisClient,创建AxisClient类

public class AxisClient {/** * @param args * @throws AxisFault  */public static void main(String[] args) throws AxisFault {// TODO Auto-generated method stubRPCServiceClient serviceClient = new RPCServiceClient();  Options options = serviceClient.getOptions();   //  指定调用WebService的URL  EndpointReference targetEPR = new EndpointReference(            "http://localhost:8080/Axis2Test/services/HelloService");  options.setTo(targetEPR);  //  指定sayHelloToPerson方法的参数值  Object[] opAddEntryArgs = new Object[] {"say hello world"};  //  指定sayHelloToPerson方法返回值的数据类型的Class对象  Class[] classes = new Class[] {String.class};  //  指定要调用的sayHelloToPerson方法及WSDL文件的命名空间  QName opAddEntry = new QName("http://service.lr.cn", "sayHelloToPersonNew");  //  调用sayHelloToPerson方法并输出该方法的返回值  System.out.println(serviceClient.invokeBlocking(opAddEntry, opAddEntryArgs, classes)[0]);  }}


对应关系见下图




9 运行AxisClient文件,结果如下:


 

 


0 0
原创粉丝点击