`

简单的webservice开发例子

 
阅读更多

 

转自:http://fengyouhua.iteye.com/blog/49383  并做一些修改

从安装 Axis 开始,

    1、编写DII方式web服务,

    2、Dynamic Proxy 方式访问服务,

    3、wsdd 发布web服务

    4、stub client 访问web服务

上面四个步骤,详解如何使用Axis开发 Web Service 的一个实例。

 

一、Axis安装
       1、环境JDK,Tomcat 

  2、到 http://ws.Apache.org/Axis/网站下载Axis安装包,也可以             http://download.csdn.net/download/fangmingrui/643150下载。

  3、解压缩安装包,将Axis_ZIP_PATH\Axis-version\webapps下的Axis包拷贝到TOMCAT_HOME\webapps\下,以下约定Axis_HOME为该TOMCAT_HOME\webapps\Axis目录

  4、启动tomcat,访问http://localhost:8080/Axis 检查安装是否成功

  5、以上步骤执行成功,可以开发webservice例子了

 

Axis支持三种web service的部署和开发,分别为:

  1、Dynamic Invocation Interface ( DII)( 这种方式的局限性太大)

  2、Stubs方式(推荐使用)

  3、Dynamic Proxy方式

二、编写DII(Dynamic Invocation Interface )方式web服务

  1.编写服务端程序HelloClient

       public class HelloClient
      {
               public String getName(String name)
    {
        return "hello "+name;
    }
     }

     注意:这个类在改写为 HelloClient.jws的时候上面的package路径要删掉

     2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws

   3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl

 

    4、编写访问服务的客户端 TestHelloClient.java

import javax.xml.namespace.QName;

import org.apache.axis.client.Call;
import org.apache.axis.client.Service;

public class HelloClient {
	public static void main(String[] args) {
		try {
			String endpoint = "http://localhost:8080/Axis/HelloClient.jws";
			Service service = new Service();
			Call call = null;
			call = (Call) service.createCall();
			call.setOperationName(new QName("http://localhost:8080/Axis/HelloClient.jws", "getName"));
			call.setTargetEndpointAddress(new java.net.URL(endpoint));
			String ret = (String) call.invoke(new Object[] { "zhangsan" });
			System.out.println("return value is " + ret);
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
 

三、编写Dynamic Proxy方式访问服务

  1、编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient

  2、编写代理接口

        public interface HelloClientInterface extends java.rmi.Remote
{
    public String getName(String name)
  throws java.rmi.RemoteException;
}

  3、编写并执行客户端程序TestHelloClient.java

import javax.xml.rpc.Service;

import javax.xml.rpc.ServiceFactory;
import java.net.URL;
import javax.xml.namespace.QName;

public class TestHelloClient {
	public static void main(String[] args) {
		try {
			String wsdlUrl = "http://localhost:8080/Axis/HelloClient.jws?wsdl";
			String nameSpaceUri = "http://localhost:8080/Axis/HelloClient.jws";
			String serviceName = "HelloClientService";
			String portName = "HelloClient";
			ServiceFactory serviceFactory = ServiceFactory.newInstance();
			Service afService = serviceFactory.createService(new URL(wsdlUrl),
					new QName(nameSpaceUri, serviceName));
			HelloClientInterface proxy = (HelloClientInterface) afService
					.getPort(new QName(nameSpaceUri, portName),
							HelloClientInterface.class);
			System.out.println("return value is " + proxy.getName("john"));
		} catch (Exception ex) {
			ex.printStackTrace();
		}
	}
}
 

 四Stubs方式:编写wsdd发布web服务,编写stub client访问web服务 


  1、编写服务端程序server,SayHello.java,编译

Java代码 
  1. package server;  
  2.   
  3. public class SayHello {  
  4.     public String getName(String name) {  
  5.         return "hello " + name;  
  6.     }  
  7. }  



 2、编写wsdd文件 

  deploy.wsdd文件内容如下: 

Java代码 
  1. <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">      
  2. <service name="SayHello" provider="java:RPC">      
  3. <parameter name="className" value="server.SayHello"/>      
  4. <parameter name="allowedMethods" value="*"/>      
  5. </service>      
  6. </deployment>   



  3、发布服务: 

  编辑一个deploy.bat,Axis_Lib为axis.jar路径。内容如下: 

Java代码 
  1. set Axis_Lib=D:\workspace\test\WEB-INF\lib      
  2. set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%      
  3. set Axis_Servlet=http://localhost:8080/test/servlet/AxisServlet      
  4. %Java_Cmd% org.apache.axis.client.AdminClient -l%Axis_Servlet% deploy.wsdd   



执行这个批处理文件,这时候,如果提示成功的话,访问http://localhost:8080/test/services 就会显示服务列表。 

  4、生成客户端client stub文件 

  在浏览器上访问服务器端的服务,可以下载到WSDL文件,通过Axis的相关工具,可以自动从WSDL文件中生成Web Service的客户端代码。 

  编写一个WSDL2Java.bat文件,其内容如下: 

Java代码 
  1. set Axis_Lib=D:\workspace\test\WEB-INF\lib      
  2. set Java_Cmd=java -Djava.ext.dirs=%Axis_Lib%      
  3. set Output_Path=D:\workspace\test\src      
  4. set Package=server.SayHello      
  5. %Java_Cmd% org.apache.axis.wsdl.WSDL2Java -o%Output_Path% -p%Package% SayHello.wsdl   



执行这个批处理文件就可以生成client stub. 

  生成的stub client文件列表为:

  SayHello.java,

SayHelloService.java,

SayHelloServiceLocator.java,

SayHelloSoapBindingStub.java . 

  5、编写客户端程序,编译并执行 

  下面是一段junit测试客户端代码。 

Java代码 
  1. import java.net.URL;  
  2. import junit.framework.Test;  
  3. import junit.framework.TestCase;  
  4. import junit.framework.TestSuite;  
  5.   
  6. public class TestWSClient extends TestCase {  
  7.   
  8.     public TestWSClient(String string) {  
  9.         super(string);  
  10.     }  
  11.   
  12.     public void SayHelloClient() throws Exception {  
  13.   
  14.         SayHelloService service = new SayHelloServiceLocator();  
  15.         SayHello_PortType client = service.getSayHello();  
  16.         String retValue = client.getName("clientname");  
  17.         System.out.println(retValue);  
  18.   
  19.     }  
  20.   
  21.     public static Test suite() {  
  22.         TestSuite suite = new TestSuite();  
  23.         suite.addTest(new TestWSClient("SayHelloClient"));  
  24.         return suite;  
  25.     }  
  26. }  

 

分享到:
评论

相关推荐

    XFire_WebService开发例子.zip

    【标题】"XFire_WebService开发例子.zip" 提供了一个关于使用XFire框架构建Web服务的实际示例。这个压缩包包含了一个详细的文档,名为“XFire_WebService开发例子.docx”,该文档很可能是对如何利用XFire框架创建和...

    XFire_WebService开发例子 详解

    XFire_WebService 开发 例子 详解 包含图解 详细的开发步骤

    Webservice接口开发简单例子

    【标题】:“Webservice接口开发简单例子” 在IT行业中,Web Service是一种基于互联网的、用于应用程序之间进行交互的标准化通信方式。本示例将探讨如何开发一个简单的Web Service接口,以便不同系统间能够共享数据...

    cxf webservice开发例子

    这是一个用cxf进行webservice开发的小例子,解决了no cxf bean等小问题,采用maven组织,接口可通过web发布,并带了测试demo。整个过程参考:http://developer.51cto.com/art/201205/333868.htm,大家可以继续完善

    c# 开发webservice的小例子

    标题:“C# 开发WebService的小例子” 首先,我们需要了解C#语言,它是.NET框架的一部分,由微软开发,专为构建高效、类型安全的面向对象的应用程序。C#语法简洁,易于学习,特别适合开发Web服务。 描述:“基于VS...

    XFire_WebService开发例子

    注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个基于XML的通讯协议用于分散和分布式环境下网络信息交换。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。它的设计目标...

    较完整的webservice例子

    【标题】:“较完整的Webservice例子” 在IT领域,Web Service是一种基于开放标准(如XML、WSDL和SOAP)的,使得不同系统间能够通过网络进行互操作的技术。本资源提供了一个较为完整的Webservice实现案例,它可以...

    webservice接口例子

    标题中的“webservice接口例子”是指该资源包含一个或多个实际的WebService接口示例,可能涵盖了如何创建、调用以及处理响应等方面。这些例子可以帮助开发者更好地理解WebService的工作原理,以及如何在实际项目中...

    java webService接口开发案例

    Java WebService接口开发是将Java应用程序暴露为网络服务的一种方式,允许不同系统间的数据交换和交互。本案例将深入探讨如何使用Java实现Web服务的创建、发布和调用。 一、理解WebService WebService是一种基于...

    webservice简单例子,Tomcat

    Web服务(Web Service)是一种基于互联网的、采用标准的XML(Extensible Markup Language)来交换数据的应用...学习和实践这个例子,有助于深入理解Web服务的工作原理,对于从事Java Web开发的人员来说是非常有价值的。

    rad开发webservice的例子

    标题“rad开发webservice的例子”表明我们将探讨如何使用Rational Application Developer (RAD) 这个集成开发环境来创建Web服务。RAD是IBM提供的一款强大的Java和Web应用程序开发工具,它集成了多种开发技术,包括对...

    java开发webservice的简单例子

    这个简单的例子展示了Java如何使用JAX-WS创建和消费Web服务。实际开发中,可能还需要处理异常、安全、性能优化等问题。此外,JAX-RS提供了一种更简洁的RESTful Web服务开发方式,适合JSON数据交换和非SOAP通信场景。...

    webservice实例

    你需要定义一个Java接口,然后使用@WebService注解标记该接口,实现接口中的方法以提供服务。 - WSDL生成:JAX-WS可以自动生成WSDL文件,描述服务的接口和消息格式,供客户端调用。 - Tomcat或Jetty等应用服务器:...

    axis2webservice接口例子

    - 如何创建一个简单的Java接口并标记为@WebService。 - 如何编写服务实现类,实现服务接口。 - 了解并编写WSDL文件,定义服务接口和消息格式。 - 使用Axis2工具将服务打包成.aar文件,并部署到Axis2服务器上。 - ...

    webservice小例子

    本示例"webservice小例子"旨在提供一个基础的Web服务接口开发与客户端调用的教程。下面我们将深入探讨Web服务的核心概念、工作原理以及如何创建和使用Web服务。 1. **Web服务核心概念**: - **SOAP(Simple Object...

    SOAP WebService简单例子

    【SOAP WebService简单例子】 SOAP(Simple Object Access Protocol)是一种基于XML的协议,用于在Web上交换结构化和类型化的信息。它允许服务提供者和消费者之间进行远程调用,使得分布式应用程序能够相互通信。在...

    java开发webService完整例子借鉴.pdf

    Java 开发 Web 服务完整例子 本文档主要讲述了 Java 开发 Web 服务的完整例子,包括使用 JDK 中的 Web 服务 API 实现 Web 服务,以及使用 XFire 工具来生成 Web 服务。 一、使用 JDK 中的 Web 服务 API 实现 Web ...

    C#调用WebService实例与开发教程(推荐)

    Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI...

Global site tag (gtag.js) - Google Analytics