<!--start of article content -->
一、axis安装 1.环境 J2SESDK1.3or1.4:我使用1.4.2 ServletContainer:我使用Tomcat5.0 2.到http://ws.apache.org/axis/网站下载axis安装包 3.解压缩安装包,将AXIS_UNZIP_PATH/axis-version/webapps下的axis包拷贝到TOMCAT_HOME/webapps/下, 以下约定AXIS_HOME为该TOMCAT_HOME/webapps/axis目录 4.启动tomcat,访问http://localhost:8080/axis检查安装是否成功 5.以上步骤执行成功,可以开发webservice例子了
axis支持三种webservice的部署和开发,分别为: 1。DynamicInvocationInterface(DII) 2。Stubs方式 3。DynamicProxy方式
以下逐一讲述webservice在axis上的部署和开发,设置classpath setCLASSPATH=.;%AXIS_HOME%/lib/axis.jar;%AXIS_HOME%/lib/axis-ant.jar;%AXIS_HOME%/lib/commons-discovery-0.2.jar;%AXIS_HOME%/lib/commons-logging-1.0.4.jar;%AXIS_HOME%/lib/jaxrpc.jar;%AXIS_HOME%/lib/saaj.jar;%AXIS_HOME%/lib/wsdl4j-1.5.1.jar;%AXIS_HOME%/lib/log4j-1.2.8.jar;E:/thirdparty/activation/activation.jar;E:/thirdparty/activation/mail.jar
二、编写DII(DynamicInvocationInterface)方式web服务 1.编写服务端程序HelloClient publicclassHelloClient{ publicStringgetName(Stringname) { return"hello"+name; } }
2.将源码拷贝到AXIS_HOME下,重命名为HelloClient.jws 3.访问连接http://localhost:8080/axis/HelloClient.jws?wsdl,页面显示axis自动生成的wsdl 4.编写访问服务的客户端TestHelloClient.java
importorg.apache.axis.client.Call; importorg.apache.axis.client.Service; importjavax.xml.namespace.QName; importjavax.xml.rpc.ServiceException; importjava.net.MalformedURLException; importjava.rmi.RemoteException;
publicclassSayHelloClient2{ publicstaticvoidmain(String[]args){ try{ Stringendpoint="http://localhost:8080/axis/HelloClient.jws";
Serviceservice=newService(); Callcall=null;
call=(Call)service.createCall();
call.setOperationName(newQName( "http://localhost:8080/axis/HelloClient.jws","getName")); call.setTargetEndpointAddress(newjava.net.URL(endpoint));
Stringret=(String)call.invoke(newObject[]{"zhangsan"}); System.out.println("returnvalueis"+ret); }catch(Exceptionex){ ex.printStackTrace(); } } } 三、编写DynamicProxy方式访问服务 1.编写部署服务端程序,同上边DII方式,本次仍使用上边部署的HelloClient 2.编写代理接口 publicinterfaceHelloClientInterfaceextendsjava.rmi.Remote{ publicStringgetName(Stringname)throwsjava.rmi.RemoteException; } 3.编写并执行客户端程序TestHelloClient.java
importjavax.xml.rpc.Service; importjavax.xml.rpc.ServiceFactory; importjava.net.URL; importjavax.xml.namespace.QName;
publicclassTestHelloClient{ publicstaticvoidmain(String[]args){ try { StringwsdlUrl="http://localhost:8080/axis/HelloClient.jws?wsdl"; StringnameSpaceUri="http://localhost:8080/axis/HelloClient.jws"; StringserviceName="HelloClientService"; StringportName="HelloClient";
ServiceFactoryserviceFactory=ServiceFactory.newInstance(); ServiceafService=serviceFactory.createService(newURL(wsdlUrl), newQName(nameSpaceUri,serviceName)); HelloClientInterfaceproxy=(HelloClientInterface) afService.getPort(newQName( nameSpaceUri,portName),HelloClientInterface.class); System.out.println("returnvalueis"+proxy.getName("john")); }catch(Exceptionex) { ex.printStackTrace(); } } }
四、编写wsdd发布web服务,编写stubclient访问web服务
1.编写服务端程序server,SayHello.java,编译server.SayHello.java packageserver; publicclassSayHello{ publicStringgetName(Stringname) { return"hello"+name; } } 2.编写LogHandler.java importorg.apache.axis.AxisFault; importorg.apache.axis.Handler; importorg.apache.axis.MessageContext; importorg.apache.axis.handlers.BasicHandler;
importjava.util.Date;
publicclassLogHandlerextendsBasicHandler{ publicvoidinvoke(MessageContextmsgContext)throwsAxisFault { /**Loganaccesseachtimewegetinvoked. */ try{ HandlerserviceHandler=msgContext.getService();
IntegernumAccesses= (Integer)serviceHandler.getOption("accesses"); if(numAccesses==null) numAccesses=newInteger(0);
numAccesses=newInteger(numAccesses.intValue()+1);
Datedate=newDate(); Stringresult=date+":service"+ msgContext.getTargetService()+ "accessed"+numAccesses+"time(s)."; serviceHandler.setOption("accesses",numAccesses);
System.out.println(result); }catch(Exceptione){ throwAxisFault.makeFault(e); } } } 3..编写wsdd文件 deploy.wsdd <deploymentxmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<handlername="print"type="java:LogHandler"/> <servicename="sayhello"provider="java:RPC"> <requestFlow> <handlertype="print"/> </requestFlow> <parametername="className"value="server.SayHello"/> <parametername="allowedMethods"value="*"/> </service> </deployment>
3.将编译后的文件拷贝到AXIS_HOME/WEB-INF/classes下,如:D:/tomcat/webapps/axis/WEB-INF/classes 4.发布服务: javaorg.apache.axis.client.AdminClientdeploy.wsdd 5.生成clientstub文件 a:方式1 将SayHello.java拷贝到AXIS_HOME/下,重命名为SayHello.jws,执行下面的命令生存clientstub javaorg.apache.axis.wsdl.WSDL2Java-pclienthttp://localhost:8080/axis/services/SayHello.jws?wsdl b:方式2 执行如下命令生成SayHello.wsdl javaorg.apache.axis.wsdl.Java2WSDL-oSayHello.wsdl-lhttp://localhost:8080/axis/services/SayHello-nsayhelloserver.SayHello 执行如下命令生成clientstub javaorg.apache.axis.wsdl.WSDL2JavaSayHello.wsdl-pclient 生成的stubclient文件列表为: 1。SayHello.java 2。SayHelloService.java。 3。SayHelloServiceLocator.java 4。SayHelloSoapBindingStub.java 6.编写客户端程序,编译并执行 publicclassSayHelloClient{ publicstaticvoidmain(String[]args){ try{
SayHelloServiceservice=newclient. SayHelloServiceLocator(); client.SayHello_PortTypeclient=service.getSayHello(); StringretValue=client.getName("zhangsan"); System.out.println(retValue);
}catch(Exceptione){ System.err.println("Executionfailed.Exception:"+e); } } }
|
|
相关推荐
### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...
### Axis 开发 Web Service 程序详解 #### 一、Web Service 概念与应用场景 Web Service 是一种跨编程语言和操作系统平台的远程调用技术。它允许不同语言编写的程序通过网络进行通信和数据交换。Web Service 的...
AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...
### 使用Axis开发Web Service程序 #### 一、概述 随着互联网技术的发展,Web Service作为一种标准的、基于XML的网络服务形式,在实现不同平台之间数据交换和应用集成方面扮演着重要角色。Axis作为Apache组织下的一...
### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...
【用Axis2开发Web Service】是本文的核心主题,轴心技术是Java开发Web服务的一种框架,相较于Axis1,其过程更为简洁。以下是关于使用Axis2开发Web Service的详细步骤和知识点: 1. **实验环境搭建**: - 首先确保...
为了更多喜爱开发的程序员也能迅速了解Web Service的开发,我这里整理了一些通过Axis开发Web Service的一些要点,希望能让不熟悉Web Service的开发人员能够迅速掌握Web Service。
### MyEclipse下开发Web Service(Axis):深入解析与实践指南 #### 一、环境配置与准备 在深入探讨如何使用Apache Axis在MyEclipse环境下构建Web Services之前,首要任务是确保拥有一个完整的开发环境。这包括但不...
【标题】: "Axis开发Web Service程序教程" 【描述】: "本文旨在引导读者通过AXIS框架体验Web服务的开发流程,适合已有Web服务基础的Java、XML开发者学习。" 【标签】: "axis webservice soap java" 【内容】: ...
【Axis2 Web Service 开发教程】是一份详细指导开发者如何使用Apache Axis2框架创建和部署Web服务的教学资料。Apache Axis2是Java世界中一个强大的Web服务引擎,它提供了高效的性能和灵活的架构,使得Web服务的开发...
【标题】:Axis开发Web Service程序学习笔记 【概述】: Web Service是一种允许不同系统间进行交互的技术,它使得应用程序可以透明地调用互联网上的服务,而无需关注具体实现细节。这种技术的关键在于公开服务接口...
基于AXIS2实现Web Service开发是一项常见的任务,尤其在企业级应用中,Web Service作为不同系统间通信的重要桥梁。AXIS2是Apache软件基金会提供的一个轻量级、高性能的Web Service框架,它提供了完整的Web Service...
**Axis开发Web Service学习笔记** 在信息技术领域,Web服务是一种基于开放标准的互联网通信协议,允许不同的应用程序之间进行互操作。而Axis是Apache软件基金会的一个开源项目,它提供了一个强大的工具集,用于创建...
【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...
基于axis 的web service 开发v0.3
【标题】基于Axis的Web Service客户端调用 在IT领域,Web Service是一种通过网络进行通信的标准协议,它允许不同系统间的应用程序互相交换数据。而Apache Axis是Java平台上的一个开源工具,专门用于创建和部署Web ...
【Apache Axis2 Web Service 教程】 Apache Axis2 是一个流行的开源Web服务框架,用于创建、部署和管理高性能的Web服务。本教程将详细介绍如何在Eclipse环境中利用Apache Axis2搭建Web服务及其客户端。 **环境配置...
【使用Eclipse的Axis1.4插件开发Web Service及客户端】 在Eclipse JEE 3.3版本中,开发Web Service和客户端程序变得相对简单,因为该版本已经集成了Axis1.4插件,无需额外安装。 Axis是一个开放源码的Web Service...