`

架设 apache Axis的webservices服务器和客户端

阅读更多

1. 服务端

          web服务器: Tomcat5.5, 用到Axis2 1_4_1 (http://apache.mirror.phpchina.com/ws/axis2/1_4_1/ )

 

          取其下webapps下的axis 文件夹.放到Tomcat /webapps下.

          写一个要发布的的java类 

 

public class Hello{    
	public String sayHello(String name){    
		return "你好,"+name;
	}    
}  

 

 

    将该文件(Hello.java)改名为Hello.jws 并拷贝到Tomcat 的 webapps\axis下.

 

    下面我们就可以测试该Web服务:

          启动Tomcat, 打开浏览器并输入刚刚创建的文件名对应的URL地址 http://localhost:8089/axis/Hello.jws

 

There is a Web Service here
       
        Click to see the WSDL

 

点击可以查看到WSDL文档,如下 

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://localhost:8089/axis/Hello.jws" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://localhost:8089/axis/Hello.jws" xmlns:intf="http://localhost:8089/axis/Hello.jws" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4
Built on Apr 22, 2006 (06:55:48 PDT)-->

   <wsdl:message name="sayHelloResponse">

      <wsdl:part name="sayHelloReturn" type="xsd:string"/>

   </wsdl:message>

   <wsdl:message name="sayHelloRequest">

      <wsdl:part name="name" type="xsd:string"/>

   </wsdl:message>

   <wsdl:portType name="Hello">

      <wsdl:operation name="sayHello" parameterOrder="name">

         <wsdl:input message="impl:sayHelloRequest" name="sayHelloRequest"/>

         <wsdl:output message="impl:sayHelloResponse" name="sayHelloResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="HelloSoapBinding" type="impl:Hello">

      <wsdlsoap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="sayHello">

         <wsdlsoap:operation soapAction=""/>

         <wsdl:input name="sayHelloRequest">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://DefaultNamespace" use="encoded"/>

         </wsdl:input>

         <wsdl:output name="sayHelloResponse">

            <wsdlsoap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="http://localhost:8089/axis/Hello.jws" use="encoded"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="HelloService">

      <wsdl:port binding="impl:HelloSoapBinding" name="Hello">

         <wsdlsoap:address location="http://localhost:8089/axis/Hello.jws"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>

 

 

 

webservices服务端发布完毕.

 

------------------------------------------------------------------------------------------------------------------------------

 

webservices客户端

 

 

根据wsdl文件生成java文件

 

     1. 新建一文件夹用于保存下列文件和文件夹. 

 

     2. 下载WSDL文档, 保存为xml格式,取名为wsdl.xml .

 

     3.   新建一个wsdl2java.bat文件,输入

 

set Axis_Lib=lib
set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%
set Output_Path=class
set Package=com.axisws.client
%Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o %Output_Path% -p %Package% wsdl.xml

         备注: Axis_Lib 设置你的axis相关jar包,可以是绝对路径, 本例jar包放在本目录下的lib文件夹下.

                 Output_Path 为输出java文件的路径,可以为绝对路径, 本例生成到本目录下的class文件夹下.

                 Package 为生成文件的默认包名.

                 最后的wsdl.xml 为你下载的WSDL文档.

 

     4. 在本目录下的lib文件夹下放入下列jar包(11个, 都在下载的Axis2 1_4_1的lib下)

           activation.jar   axis.jar    axis-ant.jar    commons-discovery-0.2.jar    commons-logging-1.0.4.jar

           jaxrpc.jar     log4j-1.2.8.jar    mailapi_1_3_1.jar    saaj.jar    wsdl4j-1.5.1.jar    xml-apis-2.6.2.jar

 

     5. 文件夹包含 : wsdl.xml     wsdl2java.bat     lib文件夹

          运行批处理文件后, 会生成一个class文件夹.文件夹内就是生成的类文件.

              Hello_PortType.java               HelloService.java

              HelloServiceLocator.java        HelloSoapBindingStub.java

 

      6. 测试客户端, 新建java项目, 把生成的文件连包一起导入, lib内的jar包也导入(文件运行需要).

 

      7. 编写测试文件

 

package com.axisws.client.test;

import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.axisws.client.HelloServiceLocator;
import com.axisws.client.Hello_PortType;

public class TestAxisClient {

	public static void main(String[] args) {
		HelloServiceLocator service = new HelloServiceLocator();
		Hello_PortType hello = null;
		try {

			hello = service.getHello();
			System.out.println(hello.sayHello("Tom"));

		} catch (ServiceException e) {
			e.printStackTrace();
		} catch (RemoteException e) {
			e.printStackTrace();
		}
	}
}

     运行得到:     你好,Tom

 

 

 

 

 

分享到:
评论
2 楼 msongli 2009-07-03  
学习一下,收藏啦
1 楼 msongli 2009-07-03  
 

相关推荐

    使用Apache Axis 生成Web服务客户端开发天气预报的功能

    总的来说,使用Apache Axis生成Web服务客户端是一项涉及理解Web服务原理、WSDL、数据绑定和异常处理等多方面技能的任务。通过这个过程,我们可以轻松地与远程服务进行交互,获取天气预报等实时信息,从而构建功能...

    Apache Axis2 Web Services的电子书

    包括3本Axis2的书(英文),實為2本(第1本有...1.Developing Web Services with Apache CXF and Axis2, 3rd Edition 2.Packt.Publishing.Quickstart.Apache.Axis2 3.Develop Web Services With Apache Axis2 PDF格式

    Apache Axis2 Web Services, 2nd Edition.pdf

    Chapter 1, Apache Web Services and Axis2 - Gives you an introduction to web services and the web service stack at Apache. Chapter 2, Looking inside Axis2 - Learn about Axis2 architecture and the ...

    Apache Axis2 Web Services, 2nd

    Extensive and detailed coverage of the enterprise ready Apache Axis2 Web Services / SOAP / WSDL engine. Attain a more flexible and extensible framework with the world class Axis2 architecture. Learn ...

    Web服务框架 Apache Axis

    通过Axis,开发人员可以将现有的Java类转换为Web服务,也可以将WSDL文档导入,自动生成服务端和客户端的代码,极大地简化了Web服务的开发流程。 使用Apache Axis的主要优点包括: 1. **易用性**:Apache Axis提供...

    用Apache AXIS 开发 Web Services Step By Step

    ### 使用Apache Axis开发Web Services ...通过以上步骤,开发者可以逐步掌握使用Apache Axis开发Web Services的核心技术和最佳实践。Apache Axis 提供了一个强大且灵活的框架,可以帮助开发者构建高效可靠的Web服务。

    ApacheAxis使用方法(版本1.4)

    资源名称:Apache Axis使用方法 (版本1.4)内容简介: Apache Axis是开源的SOAP服务器和客户端。SOAP是网络间不同语言的程序进行交互的方法。SOAP通常在HTTP上交换信息:客户端POST一个SOAP请求,然后接受HTTP响应,...

    axis2的webService服务器端和客户端开发项目

    本项目将详细介绍如何使用Axis2进行Web服务的服务器端和客户端开发。 1. **Axis2简介** Axis2是基于SOAP(简单对象访问协议)的第二代Web服务引擎,它是Apache Axis1.x的升级版。Axis2提供了一个模块化和可扩展的...

    WebServices With Apache Axis[2008年出版E文版]

    1. **代码生成**:Axis可以自动生成Java客户端和服务器端代码,使得开发Web服务变得简单。只需提供WSDL文件,Axis就能生成相应的Java类。 2. **部署**:Axis支持多种部署选项,包括直接在Servlet容器中部署或通过...

    Develop Web Services With Apache Axis

    2. **如何在Eclipse和Tomcat环境中使用Apache Axis**:这包括了如何设置开发环境,以及如何在Eclipse IDE中配置Tomcat服务器以支持Apache Axis项目。 3. **如何使用WSS4J加密和签名SOAP消息**:WSS4J(Web Services ...

    axis服务端和客户端创建

    在深入探讨如何构建Apache Axis 1.4的服务端和客户端之前,我们先来了解一下相关的基础知识和技术背景。 **SOAP(Simple Object Access Protocol)**: 这是一种轻量级协议,用于交换结构化的信息。它基于XML,被...

    apache axis-1.7.9

    Apache Axis2是Apache软件基金会开发的一个开放源代码Web服务框架,用于构建和部署高效、可扩展的Web服务。它基于Axis1.x进行重大改进,提供了更强大的功能和更好的性能。在"apache axis-1.7.9"这个版本中,我们获取...

    基于WSDL契约优先的web services服务器端和客户端开发方式

    在"基于WSDL契约优先的Web Services"开发中,我们首先定义服务的WSDL契约,然后根据这个契约生成服务器端和客户端的代码。 1. **WSDL契约优先**: WSDL契约优先的方法意味着首先编写服务的接口描述(WSDL文件),...

    Apache Web Services Axis2(1.4.1) 详细经典入门实例图文并茂

    Apache Axis2是Apache软件基金会开发的一个用于构建Web服务和实现Service-Oriented Architecture (SOA)的核心框架。本文将深入探讨Axis2 1.4.1版本的经典入门实例,通过Eclipse集成开发环境中的Axis2插件,帮助你...

    axis web services 例子

    标题 "Axis Web Services 例子" 指向的是一个关于使用Apache Axis框架创建Web服务的实际应用实例。Apache Axis是开源的Java库,专门用于构建和部署Web服务,它简化了SOAP(简单对象访问协议)消息的处理。在这个例子...

    WebServices With Apache Axis.pdf

    Apache Axis是Apache软件基金会的一个开源项目,它提供了一套完整的工具集,包括编译器、服务器和客户端库,使得开发者能够轻松地创建和使用Web服务。Axis支持SOAP 1.1和1.2,以及WS-I基本配置,确保服务具有互操作...

    client_axis.rar_AxisClient_axis client_axis.client_webservice客户端

    Apache Axis提供了丰富的功能,使得开发人员能够轻松地实现基于SOAP(简单对象访问协议)的Web服务客户端和服务器。 标题"client_axis.rar_AxisClient_axis client_axis.client_webservice客户端"暗示了这个压缩包...

    axis2服务发布与客户端代码示例

    总的来说,这篇博客应该深入浅出地介绍了Axis2服务发布和客户端调用的整个过程,对于学习和理解Web服务的开发和交互非常有帮助。如果你是初学者,跟随这个示例可以快速上手;如果你是开发者,它可能为你提供了解决...

Global site tag (gtag.js) - Google Analytics