我是靠谱客的博主 甜蜜茉莉,最近开发中收集的这篇文章主要介绍axis2实现Webservice独立部署简单案例,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

        首先需要从官网下载两个压缩包,一个是axis2-1.6.2-war.zip,一个是axis2-1.6.2-bin.zip。 其中第一个zip中有tomcat服务器需要的支持类jar包,我们把其中的axis2.war放在tomcat目录的webapps下,浏览器http://localhost:端口号/axis2/测试通过。下面我们开始进入代码。

        1,     新建JavaWeb工程,导入所需jar包;这些jar包位于  axis2-1.6.2-bin.zipaxis2-1.6.2lib 下,把所有的jar包放入WEB-INF的lib下。

        2,    新建接口服务类,例如 com/accp/test 包下  Service.java  :

        

package com.accp.test;
/**
 * 接口服务层
 */
public class Service {
	public String sayHelloNew(String ni) {
		return "船行荡飞 荡在金山喽喂 遍地金黄再照吾欲望"+ni;
	}

	public String sayHelloToPersonNew(String name) {
		if (name == null) {
			name = "nobody";
		}
		//System.out.println("啊呀");
		return "巫山口哎,晚风狂哎," + name;
	}

	public void updateData(String data) {
		System.out.println(data + " 已更新。");
	}
}

         3,      编写WebService接口的配置文件,放在META-INF下 ,名字为 services.xml :

 

       

<?xml version="1.0" encoding="UTF-8"?>
<service name="HelloServiceNew">
	<description>
		Web Service 
        </description>
	<parameter name="ServiceClass">
		com.accp.test.Service  
        </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>  


            4,       在WEB-INF下新建文件夹services,开始打aar的包 :

 

                          在F:ws 随便新建一个文件夹名字为ws,在ws里新建文件夹F:wscomaccptest  注意,此处对应着服务类的包名com.accp.test。把Service.java编译成Service.class文件放于其中;然后新建  F:wsMETA-INF 文件夹 把3中的services.xml放于其中。完整目录为F:wsMETA-INFservices.xml与F:wscomaccptestService.class;

                         开始打aar的包:运行cmd,进去F:ws目录,输入 jar cvf ws.aar com META-INF  回车,ok。

           5,      配置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>
  <!-- 此处指定加载aar -->
  <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>


            6,        编写测试类 Test.java  :

 

      

package com.accp.test;

import javax.xml.namespace.QName;

import org.apache.axis2.AxisFault;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
/*
 * 独立部署
 */
public class Test {
	public static void main(String[] args) throws AxisFault {
		RPCServiceClient serviceClient;
		String result = null;
		try {
			serviceClient = new RPCServiceClient();
			Options options = serviceClient.getOptions();
			EndpointReference targetEPR = new EndpointReference(
					"http://localhost:8000/Test/services/HelloServiceNew?wsdl");
			options.setTo(targetEPR);
			Object[] opAddEntryArgs = new Object[] {"遍地金黄  远望 照吾欲望"};
			QName opAddEntry = new QName(
					"http://test.accp.com",
					"sayHelloNew");
			Class[] classes = new Class[] { String.class };
			Object[] orgs = serviceClient.invokeBlocking(opAddEntry,
					opAddEntryArgs, classes);
			result = orgs[0].toString();
		} catch (AxisFault e1) {
			e1.printStackTrace();
		}
		System.out.println(result);
	}
}


           注意 ,启动tomcat时,请用debug模式,否则可能出现本地服务类修改后,测试类没反应的现象。  其他详细解释网上很多,具体demo已上传CSDN。

 

 

 

 

 

 

最后

以上就是甜蜜茉莉为你收集整理的axis2实现Webservice独立部署简单案例的全部内容,希望文章能够帮你解决axis2实现Webservice独立部署简单案例所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部