- 浏览: 141442 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
puyancheng1988:
哥们儿,我用的jfreechart在linux服务器上生成的图 ...
JFreeChart图表 -
soujava:
...
Linux下Oracle自动备份脚本 -
skylikeblue:
...
基于JAVA实现的手机收发短消息系统
一、Axis安装 1、环境 J2SE SDK 1.3 or 1.4: 我使用 1.4.2 Servlet Container: 我使用的Tomcat 5.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支持三种web service的部署和开发,分别为:
1、Dynamic Invocation Interface ( DII)
2、Stubs方式
3、Dynamic Proxy方式
二、编写DII(Dynamic Invocation Interface )方式web服务
1.编写服务端程序HelloClient
<ccid_code></ccid_code>public class HelloClient { public String getName(String name) { return "hello "+name; } } |
2、将源码拷贝到Axis_HOME下,重命名为 HelloClient.jws
3、访问连接http://localhost:8080/Axis/HelloClient.jws?wsdl,页面显示Axis自动生成的wsdl
4、编写访问服务的客户端 TestHelloClient.java
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>import org.apache.Axis.client.Call; import org.apache.Axis.client.Service; import javax.xml.namespace.QName; import javax.xml.rpc.ServiceException; import java.net.MalformedURLException; import java.rmi.RemoteException; public class SayHelloClient2 { 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、编写代理接口
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>public interface HelloClientInterface extends java.rmi.Remote { public String getName(String name) throws java.rmi.RemoteException; } |
3、编写并执行客户端程序TestHelloClient.java
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>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() ; } } } |
四、编写wsdd发布web服务,编写stub client访问web服务
1、编写服务端程序server,SayHello.java,编译server.SayHello.java
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>package server; public class SayHello { public String getName(String name) { return "hello "+name; } } 2.编写LogHandler.java import org.apache.Axis.AxisFault; import org.apache.Axis.Handler; import org.apache.Axis.MessageContext; import org.apache.Axis.handlers.BasicHandler; import java.util.Date; public class LogHandler extends BasicHandler { public void invoke (MessageContext msgContext) throws AxisFault { /** Log an access each time we get invoked. */ try { Handler serviceHandler = msgContext.getService(); Integer numAccesses = (Integer)serviceHandler.getOption("accesses"); if (numAccesses == null) numAccesses = new Integer(0); numAccesses = new Integer (numAccesses.intValue() + 1); Date date = new Date(); String result = date + ": service " + msgContext.getTargetService() + " accessed " + numAccesses + " time(s)."; serviceHandler.setOption ("accesses", numAccesses); System.out.println(result); } catch (Exception e) { throw AxisFault.makeFault(e); } } } |
3、编写wsdd文件
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>deploy.wsdd <deployment xmlns= "http://xml.apache.org/Axis/wsdd/" xmlns:java= "http://xml.apache.org/Axis/wsdd/providers/java"> <handler name="print" type="java:LogHandler"/> <service name="sayhello" provider="java:RPC"> <requestFlow> <handler type="print"/> </requestFlow> <parameter name="className" value="server.SayHello"/> <parameter name="allowedMethods" value="*"/> </service> </deployment> |
3、将编译后的文件拷贝到Axis_HOME/WEB-INF/classes下,如:D:\tomcat\webapps\Axis\WEB-INF\classes
4、发布服务:
java org.apache.Axis.client.AdminClient deploy.wsdd
5、生成client stub文件
a:方式1
将SayHello.java拷贝到Axis_HOME/下,重命名为SayHello.jws,
执行下面的命令生存client stub
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>java org.apache.Axis.wsdl.WSDL2Java -p client http://localhost:8080 /Axis/services/SayHello.jws?wsdl |
b:方式2
执行如下命令生成SayHello.wsdl
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>java org.apache.Axis.wsdl.Java2WSDL -oSayHello.wsdl -lhttp://localhost:8080 /Axis/services/SayHello -nsayhello server.SayHello |
执行如下命令生成client stub
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>java org.apache.Axis.wsdl.WSDL2Java SayHello.wsdl -p client |
生成的stub client文件列表为:
1.SayHello.java
2.SayHelloService.java。
3.SayHelloServiceLocator.java
4.SayHelloSoapBindingStub.java
6、编写客户端程序,编译并执行
<ccid_nobr></ccid_nobr>
<ccid_code></ccid_code>public class SayHelloClient { public static void main(String[] args) { try { SayHelloService service = new client. SayHelloServiceLocator(); client.SayHello_PortType client = service.getSayHello(); String retValue=client.getName("zhangsan"); System.out.println(retValue); } catch (Exception e) { System.err.println ("Execution failed. Exception: " + e); } } } |
发表评论
-
Cannot access NLS data files问题的解决办法
2008-10-24 15:14 1440我用的myeclipse 6.5版本,oracle是10g版 ... -
Java Web定时任务
2008-10-28 10:04 548在工程的WEB-INF\web.xml配置文件中加入如下三行, ... -
BeanUtil常用方法
2008-10-31 14:25 908Apache Common BeanUtil是一个常用的在对 ... -
安装Visual Editor
2008-11-03 17:05 1256在Eclipse 3.3.2中安装Visual Editor ... -
BeanUtils.copyProperties出现了问题的原因
2008-11-11 15:16 1130使用BeanUtils.copyProperties( des ... -
Servlet/Jsp性能优化
2008-03-05 16:21 718你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访 ... -
系统构建高性能J2EE应用的五种核心策略
2008-03-05 16:26 627于J2EE,我们知道当开发 ... -
JFreeChart图表
2008-03-05 16:30 1608在我们编程时如果要把结果显示成图表形式,就离不开JFreeCh ... -
使用JFreeChart 在网站中使用走势图
2008-03-05 16:35 991生活中我们经常用到各种图表,走势图就是其中的一种,例如:股票走 ... -
JFreeChart综合应用
2008-03-05 16:40 747JFreeChart是一个开源的JAVA项目,它主要用来开发各 ... -
要成为Java高手需要注意的25个学习目标
2008-04-05 14:16 5501、你需要精通面向对象 ... -
Java实现HTTP的断点续传
2008-06-05 10:39 634(一)断点续传的原理 其实断点续传的原理很简单,就是在Ht ... -
java串口编程
2008-06-05 11:00 1213一年半前在jbuilder2006下写过串口通信程序,最近做一 ... -
Java串行端口技术协议
2008-06-05 11:06 790串行通讯协议有很 ... -
基于JAVA实现的手机收发短消息系统
2008-06-05 11:14 15000 引 言 目前基于GSM网络的短消息应用越来越多。由于采用短 ... -
多国语表单提交乱码问题
2008-06-30 10:43 7931、所有文件都以-utf-8编码格式保存 2、所有文件都设置 ... -
网站跨站点单点登录
2008-07-03 13:20 1093昨天和几位朋友探讨到 ... -
FreeMarker概述
2008-07-03 14:43 748快速入门 (1)模板 + ... -
使用FreeMarker生成Html静态文件(实例)
2008-07-04 10:31 760以下是我在生成新闻的静态文件时用到的代码.仅供参考.请根据实际 ... -
FreeMarker学习手册
2008-07-04 17:11 823(1)模板 + 数据模型 = 输 ...
相关推荐
### Axis开发Web Service实例详解 #### 一、概述 在探讨如何使用Apache Axis来开发Web Service之前,我们首先需要了解一些基本概念。 **Web Service**是一种标准的技术框架,用于实现不同平台之间的应用通信。它...
### Axis开发Web Service的实例详解 #### 一、概述 在现代软件开发中,Web服务是一种重要的技术,它允许不同应用程序之间通过网络进行通信。Apache Axis是实现Web服务的一个流行框架,它支持SOAP协议,并提供了...
AXIS 是 Apache 开源项目提供的一款强大的 Web Service 引擎,用于开发和部署 Web Service。在本文中,我们将深入探讨如何使用 AXIS 在 Tomcat 6.0.26 上进行配置,并详细介绍三种部署和调用 Web Service 的方法:...
【标题】基于Tomcat5.0和Axis2开发Web Service应用实例 在Web服务的世界里,Axis2是一个高效且强大的工具,它允许开发者创建、部署和使用SOAP Web服务。本教程将详细介绍如何利用Apache Tomcat 5.0作为应用服务器,...
Axis+MyEclipse6.0+Tomcat5.0开发Web Service实例总结
接下来,通过一个简单实例——SayHello服务,了解使用Axis开发Web Service的全流程。 **2.1 WSDL编写** - 在MyEclipse中创建一个Web Project,命名为`SayHello`。 - 通过`File -> New -> Other -> MyEclipse -> ...
总之,这个基于Tomcat 5.0和Axis2的Web Service实例旨在帮助开发者理解Web Service的工作原理,以及如何在Java环境下使用这些工具进行开发。通过实践这些步骤,你将能够熟练地创建、部署和调用Web Service,为构建...
总之,"Web Service Axis1.4 完整的实例"涵盖了创建、部署和使用Web服务的全过程,是学习Web服务开发和Axis框架的宝贵资源。通过研究这个实例,你可以深入理解Web服务的工作原理,以及如何利用Axis1.4工具有效地开发...
标题中的"web service Axis项目实例"表明我们将探讨使用Axis框架来创建和使用Web服务。Axis提供了从WSDL(Web Services Description Language)到Java代码的绑定,以及从Java类到WSDL的自动生成,简化了Web服务的...
### 使用Axis开发Web服务 #### 1. Axis介绍 Apache Axis 是一个开源的 SOAP 基础架构,用于实现 Web 服务。它是由 Apache 软件基金会维护的一个项目,可以用于构建和调用 SOAP 协议的 Web 服务。Axis 最初是从 IBM...
基于Tomcat5_0和Axis2开发Web Service应用实例,上面的例子简单实用
本文档将对Web Service Axis进行详细总结,并提供相关实例说明。 1. Web Service简介 Web服务是通过HTTP协议传输数据的一种方式,它利用SOAP(Simple Object Access Protocol)作为消息传输格式,WSDL(Web ...
本文将详细介绍如何在Eclipse开发环境中创建基于Axis2的Web Service客户端。Axis2是Apache组织下的一个开源项目,它提供了一种用于构建服务端和服务客户端的高性能、完全可扩展的框架。对于希望在Java平台上开发和...
使用 Axis 和 Eclipse 开发 Web Service,可以简化开发流程,提高效率。Axis 是 Apache 维护的开源工具,它提供了生成服务端和客户端代码的能力,而 Eclipse 则提供了一个集成的开发环境,方便创建、调试和部署 Web ...
【Axis Web Service】是一种基于Java的开源Web服务框架,它由Apache软件基金会开发,主要用于创建和部署Web服务。Axis提供了一种简单的方式来实现SOAP(Simple Object Access Protocol)通信,允许不同平台上的应用...
AXIS2是Apache软件基金会开发的一个强大的Web服务引擎,它支持多种协议,如SOAP 1.1、SOAP 1.2、REST、MTOM(消息传输优化机制)和SwA(SOAP with Attachments)。AXIS2基于模块化设计,提供高性能和灵活性,使其...