开发环境 jdk1.4 myEclipse5.1 tomcat5.0 axis_1_2_1
使用axis 开发webServices还是比较方便快捷的
1.建立一个java类 提供webServices调用的方法
//以下方法提供不同的参数类型 及返回值类型
package test.rpc;
import test.bean.Employee;
public class JaxRpcService {
//param:string return:string
public String getEmployeeName(String employeeId){
String id = employeeId;
return "name";
}
//param:string return
bject
public Employee getEmployee(String employeeId){
Employee employee = new Employee();
employee.setId("1111111");
employee.setName("luo-yi-jun");
employee.setAddress("wu-Han");
return employee;
}
//return object[]
public Employee[] getEmployeeList(){
Employee employee = new Employee();
Employee employee1 = new Employee();
Employee[] employeeArray = new Employee[2];
employee.setId("1111111");
employee.setName("luo-yi-jun");
employee.setAddress("wu-Han");
employeeArray[0]=employee;
employee1.setId("2222222");
employee1.setName("luo-yi-jun-1");
employee1.setAddress("wu-Han-1");
employeeArray[1]=employee1;
return employeeArray;
}
}
//上面类中要用到的javaBean
package test.bean;
import java.io.Serializable;
public class Employee implements Serializable{
private String id;
private String name;
private String address;
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
3.配置部署描述文件
<!-- Use this file to deploy some handlers/chains and services -->
<!-- Two ways to do this: -->
<!-- java org.apache.axis.utils.Admin deploy.wsdd -->
<!-- from the same dir that the Axis engine runs -->
<!-- or -->
<!-- java org.apache.axis.client.http.AdminClient deploy.wsdd -->
<!-- after the axis server is running -->
<deployment name="test" xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance">
<service name="webServices" provider="java:RPC" >
<namespace>http://soapinterop.org/</namespace>
<parameter name="className" value="test.rpc.JaxRpcService"/>
<parameter name="allowedMethods" value="*" />
<typeMapping
xmlns:ns="http://soapinterop.org/xsd"
qname="ns:ArrayOfEmployee"
type="java:test.bean.Employee[]"
serializer="org.apache.axis.encoding.ser.ArraySerializerFactory"
deserializer="org.apache.axis.encoding.ser.ArrayDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
<typeMapping
xmlns:ns="http://soapinterop.org/xsd"
qname="ns:Employee"
type="java:test.bean.Employee"
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory"
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" />
<operation name="getEmployee" returnQName="return" returnType="RTypeNS:Employee" xmlns:RTypeNS="http://soapinterop.org/xsd">
<parameter name="employeeId" type="xsd:string"/>
</operation>
<operation name="getEmployeeList" returnQName="return" returnType="RTypeNS:ArrayOfEmployee" xmlns:RTypeNS="http://soapinterop.org/xsd"/>
<operation name="getEmployeeName" returnType="xsd:string">
<parameter name="employeeId" type="xsd:string"/>
</operation>
</service>
</deployment>
4.根据部署描述文件生成 server-config.wsdd 这个文件
首先编译工程,下载axis开发包 将axis包解压到硬盘的某个位置(本例为d盘根目录下)
在工程的classes目录下 新建一个批处理文件(*.bat)
SET AXIS_HOME=d:\
set CLASSPATH=%AXIS_HOME%/axis-1_2_1/lib/axis.jar;%AXIS_HOME%/axis-1_2_1/lib/log4j-1.2.8.jar;%AXIS_HOME%/axis-1_2_1/lib/commons-logging-1.0.4.jar;%AXIS_HOME%/axis-1_2_1/lib/jaxrpc.jar;%AXIS_HOME%/axis-1_2_1/lib/saaj.jar;%AXIS_HOME%/axis-1_2_1/lib/commons-discovery-0.2.jar;%AXIS_HOME%/axis-1_2_1/lib/wsdl4j-1.5.1.jar;%CLASSPATH%
java org.apache.axis.utils.Admin server deploy.wsdd
打开.bat文件将以上内容复制到刚才新建的.bat文件中(注意本人用的axis开发包解压缩后放在d盘根目录下 上面的 "axis-1_2_1" 是axis解压后的文件夹名)
运行成功后则会在当前目录下server-config.wsdd 文件
5.在web.xml中加入
<servlet>
<servlet-name>axis</servlet-name>
<servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>axis</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
6.将axis中的jar包拷贝到项目中
启动服务器 输入 http://主机地址:端口号/项目名/services/
ok!
7.客户端测试
package client;
import org.apache.log4j.Logger;
import org.apache.axis.client.Call;
import javax.xml.namespace.QName;
import javax.xml.rpc.ServiceException;
import org.apache.axis.client.Service;
import java.net.MalformedURLException;
import java.net.URL;
public class BaseTest {
private static final Logger log=Logger.getLogger(BaseTest.class);
protected static String NAMESPACE="http://soapinterop.org/xsd";
protected static String hostName="127.0.0.1";
protected static String port="8080";
protected static String project="webServices";
protected static Call call;
protected static String wsName="webServices";
protected static String methodName;
public static Call getCall()throws ServiceException, MalformedURLException
{
if(wsName==null || methodName==null)
return null;
Service service=new Service();
Call call=(Call)service.createCall();
call.setOperationName(getOperationName());
call.setTargetEndpointAddress(getTargetEndpointAddress());
return call;
}
private static QName getOperationName(){
return new QName("http://" + hostName + ":" + port + "/" + project + "/services/" + wsName, methodName);
}
private static URL getTargetEndpointAddress() throws MalformedURLException{
return new URL("http://" + hostName + ":" + port + "/" + project + "/services/" + wsName + "?wsdl");
}
}
package client;
import javax.xml.namespace.QName;
import org.apache.axis.client.Call;
import org.apache.axis.encoding.ser.ArrayDeserializerFactory;
import org.apache.axis.encoding.ser.ArraySerializerFactory;
import test.bean.Employee;
public class EmployeeTest extends BaseTest{
public static void main(String args[])throws Exception
{
/* methodName = "getEmployeeName";
System.out.println("测试方法:" + methodName);
Call call = getCall();
Object[] obj = new Object[1];
obj[0] = "11111";
System.out.println(call.invoke(obj));
*/
//----------------------
/*
methodName = "getEmployee";
Call call = getCall();
QName qn1 = new QName(NAMESPACE, "Employee");
call.registerTypeMapping(Employee.class, qn1,
new org.apache.axis.encoding.ser.BeanSerializerFactory(Employee.class, qn1),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(Employee.class, qn1));
Object[] obj1 = new Object[1];
obj1[0] = "1212";
Employee em =(Employee)call.invoke(obj1);
System.out.println("name:" + em.getName() +" id:" + em.getId() + " address:" + em.getAddress());
*/
//--------------------------------------------
methodName = "getEmployeeList";
Call call = getCall();
QName qn = new QName(NAMESPACE, "ArrayOfEmployee");
call.registerTypeMapping(Employee[].class, qn,
new ArraySerializerFactory(qn),
new ArrayDeserializerFactory(qn));
QName qn1 = new QName(NAMESPACE, "Employee");
call.registerTypeMapping(Employee.class, qn1,
new org.apache.axis.encoding.ser.BeanSerializerFactory(Employee.class, qn1),
new org.apache.axis.encoding.ser.BeanDeserializerFactory(Employee.class, qn1));
System.out.println("测试方法:" + methodName);
Object ojbect = call.invoke(new Object[]{});
Employee[] emp = (Employee[])ojbect;
System.out.println("length:" + emp.length);
for(int i=0; i<emp.length ;i++){
Employee e = emp[i];
System.out.println("name:" + e.getName() +" id:" + e.getId() + " address:" + e.getAddress());
System.out.println("------");
}
}
}
分享到:
相关推荐
标题:"axis开发webservices" 描述:"这是关于axis开发webservices的完整资料" ### Axis与Web Services:构建SOAP Web服务 Axis是Apache软件基金会提供的一款开源工具,用于在Java环境中实现Web服务,支持SOAP...
### 应用Axis开发Web Services的关键知识点 #### 一、Axis的安装 1. **JDK版本要求**:为了能够顺利地安装与运行Axis,必须确保计算机上已安装了JDK1.4.2或更高版本。这是因为Axis依赖于较新的Java特性,较低版本...
### 使用Apache Axis开发Web Services 步骤详解 #### 一、环境准备 在开始使用Apache Axis开发Web Services之前,需要确保开发环境已经搭建好。本文档将详细介绍如何配置必要的环境。 **1.1 软件下载准备** - **...
标签中的“源码”指的是使用Axis开发Web Services时,开发者需要接触和修改的Java源代码,包括服务端的业务逻辑代码和服务接口的定义。而“工具”则是指Axis本身提供的各种辅助工具,如wsdl2java和TestWebServices...
### Axis开发Web Services知识点 #### 一、Axis2简介及获取方法 Axis2是一个用于Java平台的高性能开源Web服务框架,支持多种协议如SOAP、HTTP等。它提供了强大的功能,如安全性和事务处理,同时也非常注重性能和可...
### AXIS与WebServices开发详解 #### 一、AXIS与WebServices概述 AXIS是由Apache组织提供的一个开源项目,主要用于构建、部署和调用Web Services。它基于Java平台,能够帮助开发者快速创建和发布Web Services,...
使用Axis技术开发。 其中包含webservices开发,以及webservices调用。 运行项目后输入:http://localhost:8080/webserviceDemo/services/helloService?wsdl 显示报文信息 输入:...
本文旨在介绍如何使用 Axis2 开发 Web Services 的全过程,包括环境搭建、插件安装等基础准备工作,以及具体的开发流程与实例演示。 #### 1. 环境搭建 ##### 1.1 安装配置 JDK、Tomcat 和 Eclipse **JDK (Java ...
通过学习并实践这个教程,开发者可以掌握使用Eclipse和AXIS开发Web服务的关键技能,这对于构建分布式系统、实现系统间的数据共享和集成至关重要。无论是初学者还是经验丰富的开发者,都可以从中受益,提高自己的Web...
简而言之,本文提供了使用AXIS开发Web Services,并结合SSL和Oracle XE数据库的详细步骤。通过这些技术,可以构建安全、可靠且易于扩展的分布式系统。记得在实施过程中,每个步骤都需要仔细检查和测试,以确保所有...
### 使用Axis1开发Web Services入门知识点详解 #### 一、实验背景与目标 在学习如何使用Axis1开发Web Services之前,我们首先需要了解几个基本概念:Web Services是一种平台独立的服务形式,它允许不同应用程序...
通常,这样的压缩包可能包括JAR文件、文档、示例代码等资源,供用户学习和开发Web服务。 总的来说,Apache Axis是一个强大的工具,它使得开发人员能够快速地创建、部署和测试Web服务。通过理解SOAP协议、WSDL描述、...
### 使用Axis开发Web服务 #### 1. Axis介绍 Apache Axis 是一个开源的 SOAP 基础架构,用于实现 Web 服务。它是由 Apache 软件基金会维护的一个项目,可以用于构建和调用 SOAP 协议的 Web 服务。Axis 最初是从 IBM...
本文将深入探讨使用Axis2开发Web服务所需的关键知识点,并重点关注jar包的使用。 首先,我们要了解什么是Web服务。Web服务是一种通过互联网交换数据的方式,允许不同系统之间的应用程序进行通信。SOAP(Simple ...
Axis1.4 Web服务开发框架是Apache软件基金会提供的一个开源工具,主要用于构建和部署Web服务。这个框架基于Java,使得开发者能够轻松地将现有业务逻辑转换为符合SOAP(Simple Object Access Protocol)标准的Web服务...
AXIS插件是Eclipse IDE的一个扩展,它为开发Web Services提供了图形化的用户界面,简化了基于Java的Web Services的创建过程。通过这个插件,开发者可以直接在Eclipse中生成服务端代码、客户端 stubs以及数据绑定类,...
### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...
在这个"axis部署WebServices 和 JAXB的使用"主题中,我们将深入探讨这两个关键技术及其协同工作。 首先,让我们关注Axis的部署过程。Axis1.3是Axis的一个较旧版本,但仍然适用于许多遗留系统。部署Web服务的基本...
本篇文章将详细解析如何使用Apache Axis来部署Web Services,这是一款广泛使用的开源工具,用于生成和消费Web Services。 首先,我们需要了解Web Services的基本概念。Web Services通过WSDL(Web Service ...