`
随心而行
  • 浏览: 13733 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

axis2基本使用

 
阅读更多
本文简单介绍axis2单独使用,

1、首先下载axis2-1.6.2-bin.zip,此压缩包中包含了sample、代码生成工具等;

2、创建mvn项目,编写pom.xml,加入axis2依赖包
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.qerooy</groupId>
	<artifactId>axis2</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>

	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2</artifactId>
			<version>1.6.2</version>
		</dependency>

		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2-transport-http</artifactId>
			<version>1.6.2</version>
		</dependency>

		<dependency>
			<groupId>org.apache.axis2</groupId>
			<artifactId>axis2-transport-local</artifactId>
			<version>1.6.2</version>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.9</version>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.11</version>
		</dependency>

	</dependencies>

	<build>
		<finalName>axis2</finalName>
	</build>

</project>


3、编写User及UserService,临时使用静态数据作测试
package com.qerooy.model;

import java.util.Date;

public class User {
	
	private Integer id;
	
	private String username;
	
	private String remark;
	
	private Date createDatetime;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getUsername() {
		return username;
	}

	public void setUsername(String username) {
		this.username = username;
	}

	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public Date getCreateDatetime() {
		return createDatetime;
	}

	public void setCreateDatetime(Date createDatetime) {
		this.createDatetime = createDatetime;
	}

}



package com.qerooy.webservice;

import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.qerooy.model.User;

/**
 * 用户服务
 */
public class UserService {
	
	public User findById(Integer id){
		return map.get(id);
	}
	
	public List<User> findAll(){
		return list;
	}
	
	private static Map<Integer,User> map = new HashMap<Integer,User>();
	
	private static List<User> list = new ArrayList<User>();
	
	static {
		for(int i=0;i<10;i++){
			User u = new User();
			u.setId(i);
			u.setCreateDatetime(new Date());
			u.setRemark("remark");
			u.setUsername("qerooy"+i);
			map.put(i,u);
			list.add(u);
		}
	}

}



4、编写services.xml,同时将目录axis2-1.6.2-bin\axis2-1.6.2\conf中的配置文件axis2.xml放入到项目目录webapp\WEB-INF\conf中
<service name="UserService" scope="application" targetNamespace="http://qerooy.com/">
	<description>
		User Service
	</description>
	
	<messageReceivers>
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only"
			class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
		<messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
			class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
	</messageReceivers>
	<schema schemaNamespace="http://qerooy.com/xsd" />
	<parameter name="ServiceClass">com.qerooy.webservice.UserService</parameter>
</service>



5、配置项目web.xml,增加axis2 Servlet
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 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_3_0.xsd">

	<display-name></display-name>

	<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>

	<welcome-file-list>
		<welcome-file>index.jsp</welcome-file>
	</welcome-file-list>
	
</web-app>



6、将UserService及配置文件打包成UserService.aar,并将其拷贝到WEB-INF/services目录中即可,可使用命令jar进行打包,本例中使用ant进行,build.xml如下
<project name="axis2" basedir="." default="generate.service">

    <property name="AXIS2_HOME" value="F:\tool\axis\axis2-1.6.2-bin\axis2-1.6.2"/>

    <property name="build.dir" value="target"/>

    <path id="axis2.classpath">
        <fileset dir="${AXIS2_HOME}/lib">
            <include name="*.jar"/>
        </fileset>
    </path>

    <target name="generate.service" >
    	<delete file="${build.dir}/UserService.aar" />
        <!--aar them up -->
        <jar destfile="${build.dir}/UserService.aar">
            <fileset dir="${build.dir}/classes">
            	<include name="META-INF/services.xml"/>
            	<include name="com/qerooy/webservice/*"/>
            </fileset>
        </jar>
        <copy file="${build.dir}/UserService.aar"
              toDir="${basedir}/src/main/webapp/WEB-INF/services"
              overwrite="yes">  
        </copy> 
    </target>

</project>



7、部署项目,此时服务端已完成;

8、本文使用代码生成工具生成客户端代码
wsdl2java -uri  http://localhost:8080/axis2/services/UserService?wsdl

9、编写测试代码进行测试
package com.qerooy;

import org.junit.Test;

import com.qerooy.local.UserServiceStub;
import com.qerooy.local.UserServiceStub.FindAll;
import com.qerooy.local.UserServiceStub.FindAllResponse;
import com.qerooy.local.UserServiceStub.FindById;
import com.qerooy.local.UserServiceStub.FindByIdResponse;

public class UserServiceLocalTest {

	@Test
	public void test() throws Exception{
		
		UserServiceStub userService = new UserServiceStub();
		
		FindAll findAll0 = new FindAll();
		FindAllResponse response = userService.findAll(findAll0);
		
		UserServiceStub.User[] userArr = response.get_return();
		
		for(UserServiceStub.User user : userArr){
			System.out.println(user.getId()+"-"+user.getUsername()+"-"+user.getRemark());
		}
		
		
		System.out.println("---------");
		
		FindById findById2 = new FindById();
		findById2.setId(3);
		FindByIdResponse userResponse = userService.findById(findById2);
		UserServiceStub.User user = userResponse.get_return();
		System.out.println(user.getId()+"-"+user.getUsername()+"-"+user.getRemark());
	}

}



完毕!

另服务端如需查看报文可添加日志模块下载的zip包中已有代码 axis2-1.6.2-bin\axis2-1.6.2\samples\userguide\src\userguide\loggingmodule,只需添加此模块即可
分享到:
评论

相关推荐

    axis2 安装使用教程

    ### Axis2 安装使用教程 #### 一、软件准备 在正式开始之前,需要确保以下...通过上述步骤,不仅完成了 Axis2 的安装与配置,还实现了基本的服务发布与客户端调用功能。这为后续更复杂的应用场景提供了坚实的基础。

    axis2-idea-plugin-1.7.9.zip_axis2_axis2-idea-plugin_idea导入axis2_

    通常,这样的插件会提供诸如代码自动完成、错误检查、部署支持等特性,帮助开发者更高效地使用Axis2框架。 标签中包含了"axis2"、"axis2-idea-plugin"、"idea导入axis2"以及"slopekya"和"www.slope79.com"。...

    axis2-1.5.1-bin.zip axis2-1.5.1-war.zip axis2部署使用

    `axis2-1.5.1-bin.zip`是Axis2的二进制包,它包含了运行和开发Web服务所需的所有基本组件。这个包通常用于本地开发环境或者在服务器上进行手动安装。其中包含的主要文件和目录有: 1. `bin`目录:包含启动和管理...

    axis和axis2的一些发布差异(WSDL2Java) 收藏

    #### Axis与Axis2 WSDL2Java工具的基本用法 1. **Axis WSDL2Java工具命令行格式**: - `wsdl2java` 是Axis用于根据WSDL文件生成Java源代码的工具。 - 示例:`java -Djava.ext.dirs=&lt;path_to_axis_lib&gt; org.apache....

    axis2最新使用包

    Axis2是Apache软件基金会开发的一个开源Web服务框架,主要用于构建和部署高性能、高效率的Web...熟悉Axis2的基本概念和操作流程,对于任何想要利用Web服务进行系统集成或构建分布式应用的开发者来说都是至关重要的。

    axis2-1.6.1

    - 多协议支持:除了基本的SOAP 1.1和1.2,Axis2还支持REST、MTOM(Message Transmission Optimization Mechanism)和SwA(Soap with Attachments)等传输方式。 - 高效的消息处理:使用了基于内存的数据结构,Axis2...

    Axis2的使用实例

    通过这个实例,我们了解了如何使用Axis2快速创建和部署Web服务,以及如何进行基本的客户端调用。随着深入学习,你可以掌握更多高级特性,如模块化、安全性和事务处理,从而更好地利用Axis2构建复杂的Web服务系统。

    axis 1.x与axis2.x开发

    总的来说,了解和掌握Axis1.x与Axis2.x的区别和使用方法,对于Java Web服务开发者来说至关重要。这不仅涉及到选择合适的框架,也关系到如何有效地部署、管理和优化Web服务。在实际工作中,应根据项目需求和团队的...

    axis2包 使用axis2开发webservice需要的jar包

    描述中提及的例子链接虽然已经失效,但通常它会展示一个基本的Axis2 Web服务开发流程,包括创建服务类、编写服务接口、配置服务描述文件(WSDL,Web Services Description Language)以及部署服务到Axis2服务器。...

    eclipse java axis2

    在了解Eclipse Java Axis2之前,我们需要先理解Web服务的基本概念。Web服务是一种通过HTTP协议进行通信的软件系统,允许不同应用程序之间交换数据。Axis2是第二代Apache Axis,它在性能、模块化和可扩展性方面有所...

    axis2学习资料

    这个“axis2学习资料”压缩包很可能是包含了关于Axis2的各种教程、文档、示例代码和其他学习资源,旨在帮助开发者深入理解和掌握Axis2的使用。 Axis2的核心特性包括: 1. **模块化设计**:Axis2采用了模块化的...

    axis2-1.6.4源码

    2. **服务(Service)**:服务是 Axis2 的基本构建块,它封装了业务逻辑。通过源码,我们可以看到服务的生命周期管理,包括加载、启动、停止和卸载等过程。 3. **消息处理器(Message Processor)**:这是 Axis2 ...

    axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip axis2-1.5.3-bin.zip

    Axis2支持基本认证、WS-Security和其他安全机制,可以实现服务端的身份验证和加密通信。 7. **工具集** Axis2提供了丰富的命令行工具,如.axis2\bin目录下的wsdl2java、java2wsdl、deploy、undeploy等,方便开发...

    axis2所用jar包大全下载

    开发者在使用Axis2时,必须确保所有必要的依赖都被正确地引入,以避免运行时错误或功能缺失。通过精简不必要的jar包,可以减少项目体积,提高应用性能,这也是描述中提到的“剔除大部分不需要的jar”的目的。对于...

    Axis2例子Demo

    1. 如何创建一个基本的Axis2服务。 2. 如何编写服务端和客户端代码。 3. 如何部署和测试Web服务。 4. 如何处理服务的异常和错误。 5. 了解Axis2的模块化结构和可扩展性。 总的来说,"Axis2例子Demo"是一个宝贵的...

    Java+Axis2调用Web Services 网络接口

    要在Java中使用Axis2调用Web服务,首先需要在项目中添加Axis2的依赖库。这可以通过Maven或者直接下载jar包到项目的类路径中实现。然后,使用wsimport工具生成客户端 stubs,这些stubs将根据WSDL文件自动创建客户端...

    axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin

    标题中的"axis2-1.6.2-war+axis2-1.6.1-war+axis2-1.6.2-bin"表明这是一个包含不同版本的Apache Axis2服务框架的集合。Axis2是Apache软件基金会开发的一个Web服务引擎,它主要用于创建和部署Web服务以及处理SOAP消息...

    axis2-1.4.1

    在本文中,我们将深入探讨Axis2的基本概念、主要功能以及如何利用它来实现WSDL到Java的转换。 一、Apache Axis2简介 Apache Axis2是基于SOAP(Simple Object Access Protocol)的Web服务引擎,它是Apache SOAP项目...

    axis2-1.6.0-bin和axis2-1.6.0-war

    - `README.txt`: 这是关于如何安装、配置和使用Axis2的基本指南,对于初学者来说非常重要。 - `NOTICE.txt`: 提供了软件中使用的第三方库和组件的版权信息,满足开源许可证的要求。 - `axis2.war`: 如上所述,这是...

Global site tag (gtag.js) - Google Analytics