使用axis2 部署webservice服务

部署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 stub
		RPCServiceClient 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值