WebService
文章平均质量分 88
hoojo
一直被模仿,从未被超越!
展开
-
一、搭建简单的axis web服务
<br /><br />在官方网站下载axis的工程(这个等下就有用的)和源码、jar包等,下载地址是:<br />http://labs.renren.com/apache-mirror//ws/axis/1_4/<br />2、解压下载的工程或源码(两个中任意一个都可以),解压axis-bin-1.4可以看到大致目录是这样的:<br /><br />docs是文档、lib是jar包、sample是示例、xmls是当前工程所需的xml、webapps是当前工程的webr原创 2010-12-20 16:04:00 · 4356 阅读 · 8 评论 -
一、Axis2 WebService开发准备工作
上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。 Axis1.x在线博文:http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html 1、开发准备 首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。 下载地址:http://axis.apache.org/axis2/java/core/download.cgi 现在最高的版本是1.5.4的 然后你需要下载官方提供的axis的原创 2011-03-15 10:43:00 · 3043 阅读 · 0 评论 -
二、Axis2的简单WebService示例
1、编写一个简单的WebService的服务器端代码,代码如下: import java.util.Random;/** * function: WebService HelloWorld服务示例 * @author hoojo * @createDate 2011-1-5 下午03:35:06 * @file HelloWorldService.java * @package com.hoo.service * @project Axis2WebService原创 2011-03-15 18:49:00 · 2179 阅读 · 0 评论 -
三、 复杂对象类型的WebService
1、这次我们编写复杂点的WebService方法,返回的数据是我们定义属性带getter、setter方法JavaBean,一维数组、二维数组等。 看代码: import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Random;import data.User;/** * function:复杂类型数据的WebService:字节数原创 2011-03-15 10:59:00 · 2797 阅读 · 0 评论 -
五、WebService会话Session的管理
1、新建Session的WebService测试代码,代码很简单。就是记录用户登录的状态信息,放在MessageContext的ServiceContext中。代码如下: package com.hoo.service;import org.apache.axis2.context.MessageContext;import org.apache.axis2.context.ServiceContext;/** * function:WebService Session会话原创 2011-03-16 02:02:00 · 3314 阅读 · 0 评论 -
六、 跨多个WebService管理Session
当多个WebService的时候,我们要管理它的Session。这个时候我们得依靠ServiceGroupContext保存session信息; 然后在发布WebService的时候,services.xml文件的的service表情的scope就不再说request或是transportsession了, 而是application;最后同样要开启对session的管理,即options.setManageSession(true); 1、 首先多个WebService的session管理的代码如原创 2011-03-16 02:10:00 · 2521 阅读 · 1 评论 -
八、 异步调用WebService
异步,说到异步需要首先将以下同步。同步就是代码按照顺序执行,当前面的代码的请求没有正常返回结果的情况下,后面的代码是不能运行。 而异步正好和这点不同,异步是代码运行后,不管当前的请求是否返回结果,后面的代码都会继续运行。 关于异步在此就不再赘述了,有兴趣的可以去网上查查这方面的资料。 1、 编写服务器端的代码。 package com.hoo.service;/** * function:异步WebService服务器端代码 * @author hoojo * @cre原创 2011-03-16 02:23:00 · 2285 阅读 · 0 评论 -
九、 编写Module模块
Axis可以通过Module模块进行扩展,用户可以编写定制自己的Module模块。编写一个Module的模块至少需要实现两个接口,分别是Handler和Module接口。 开发axis2的Module模块需要如下步骤: 1、 实现Module接口的实现类,这个类要完成基本的初始化、销毁等操作 2、 实现Handler接口的实现类,这个类主要是完成业务处理 3、 在META-INF目录下,创建module.xml配置文件 4、 在axis2.xml中增加配置module的模块 5、 在s原创 2011-03-16 02:33:00 · 1930 阅读 · 0 评论 -
十、 使用SoapMonitor监视WebService的请求和响应信息
使用soapMonitor可以监视到请求和响应的WebService的基本信息,可以讲响应在控制台的信息显示在applet控件上。 步骤如下: 1、 部署相关的applet和servlet Axis2有自带的monitor模块,这里就不需要单独安装。在[tomcat_home]/webapps/axis2/WEB-INF/lib目录中,找到axis2-soapmonitor-servlet-1.5.3.jar这个文件,将这个文件解压后,将里面的servlet的class文件放到[tomcat_h原创 2011-03-16 02:41:00 · 2476 阅读 · 3 评论 -
三、CXF对Interceptor拦截器的支持
前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似。在每个请求响应之前或响应之后,做一些事情。这里的Interceptor就和Filter、Struts的Interceptor很类似,提供它的主要作用就是为了很好的降低代码的耦合性,提供代码的内聚性。下面我们就看看CXF的Interceptor是怎么样工作的。 1、 我们就用上面的HelloWorldService,客户端的调用代码重新写一份,代码如下: package com.原创 2011-03-30 02:09:00 · 3395 阅读 · 0 评论 -
CXF WebService 开发文档-目录索引
上次介绍了Axis的WebService,现在我们来看看CXF是怎么完成WebService的。 Axis1 WebService 在线博文: http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html Axis2 WebService 在线博文: http://www.cnblogs.com/hoojo/archive/2011/03/16/1985160.html 索引 一、CXF WebService准备工作原创 2011-03-30 03:10:00 · 3622 阅读 · 5 评论 -
二、CXF 入门示例
又一HelloWorld示例,老套的HelloWorld是入门经典。也是基础和必须掌握的,下面看看HelloWorldWebService,很简单。 需要的jar包如下: 1、 HelloWorldService服务器端代码 package com.hoo.service; import javax.jws.WebParam; import javax.jws.WebService; import jav原创 2011-03-29 07:51:00 · 2821 阅读 · 0 评论 -
四、CXF WebService中传递复杂类型对象
前面介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。 1、 首先看看服务器端的代码所需要的JavaBean对象 package com.hoo.entity; import java.io.Serializable; /** * function:User Entity * @author hoojo原创 2011-03-30 02:20:00 · 4826 阅读 · 5 评论 -
一、CXF WebService准备工作
1、 CXF官方网址:http://cxf.apache.org/ 2、 Jar包下载地址:http://www.apache.org/dyn/closer.cgi?path=/cxf/2.3.3/apache-cxf-2.3.3.zip 将下来的jar包解压后,目录大概就这样: bin目录提供的是常用的dos控制台命令工具 docs 帮助文档 lib jar包、依赖库 lib-samples 也是jar包,有jetty、httpclients、junit等jar包 modules 打包原创 2011-03-29 07:20:00 · 2608 阅读 · 0 评论 -
Spring REST
前面介绍过Spring的MVC结合不同的view显示不同的数据,如:结合json的view显示json、结合xml的view显示xml文档。那么这些数据除了在WebBrowser中用JavaScript来调用以外,还可以用远程服务器的Java程序、C#程序来调用。也就是说现在的程序不仅在BS中能调用,在CS中同样也能调用,不过你需要借助RestTemplate这个类来完成。RestTemplate原创 2011-06-10 03:04:00 · 3998 阅读 · 2 评论 -
Spring 3 整合Apache CXF WebService
在CXF2版本中,集合Spring3发布CXF WebService就更加简单了。因为Spring 3提供了annotation注解,而CXF2发布WebService已经不像之前版本的配置那样(参考老版本发布WebService系列文章:http://www.cnblogs.com/hoojo/archive/2011/03/30/1999563.html),现在发布一个WebService可以原创 2012-07-13 17:48:18 · 3792 阅读 · 0 评论 -
Axis2.x WebService开发指南-目录索引
Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService Axis的辅助工具发布、调用WebService Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService原创 2011-03-15 10:30:00 · 3939 阅读 · 0 评论 -
七、 用Spring创建的JavaBean发布成WebService
1、首先,看看这个简单的类代码: package com.hoo.service;/** * function:Spring的装载Bean的Service * @author hoojo * @createDate 2011-3-9 下午06:30:26 * @file SpringService.java * @package com.hoo.service * @project Axis2WebService * @blog http://blog.csdn原创 2011-03-16 02:17:00 · 1758 阅读 · 0 评论 -
Axis1.x WebService开发指南—目录索引
Axis1.x WebService开发指南Axis的简单入门实例Axis的jws发布WebServiceAxis的wsdd模式发布WebServiceAxis删除wsdd发布过的WebServiceAxis中传递复杂对象和内部类Axis中的handler、chain的特性axis调用RMI模式WebServiceAxis中处理异常信息Axis中传递文件信息Axis常用命令介绍Axis 提供的工具和调试Axis 的wsdl生成代码Axis的Header信息操作.Net调用Axis出现的问原创 2010-12-20 16:09:00 · 4114 阅读 · 5 评论 -
二、用wsdd(Web Services Deployment Descriptor)方式发布WebService
wsdd方法比jws方法要稍微复杂些,但一定程度上比jws发布的方法要灵活。1、首先在AxisWebService工程创建一个java类,里面写简单的2个方法getName、getAge,代码如下: 代码package com.hoo.service;/** * function:wsdd发布模式的axis WebService * @author hoojo * @createDate Dec 15, 2010 17:24:35 PM * @file HelloWorldWSDD.java原创 2010-12-21 13:32:00 · 1877 阅读 · 0 评论 -
三、取消发布的WebService(删除一个发布成功的Web服务)
<br />首先,取消发布也需要定制wsdd文件,undeploy.wsdd具体格式如下:<br /><undeployment xmlns="http://xml.apache.org/axis/wsdd/"><service name="HelloWorldWSDD"/></undeployment> <br /> <br /> <br />同样,像上面发布WebService一样,用命令完成。<br />命令如下:<br />java -Djava.ext.dirs=lib org.apa原创 2010-12-21 14:02:00 · 1880 阅读 · 0 评论 -
八、WebService处理异常信息
<br />在数据传递和远程调用过程中,有时候调用者传递错误的数据和是调用的方法错误。那我们怎样处理这个错误?方法有很多,这里介绍下用异常处理远程调用的错误方法。<br />1、编写服务器端的异常类,在远处调用中(WebService)异常类继承RemoteException,记得要序列化下,代码如下:<br /> package com.hoo.exception;import java.rmi.RemoteException;/*** <b>function:</b>定制服务器端异常信息原创 2010-12-21 14:22:00 · 1885 阅读 · 0 评论 -
十三、.Net调用axis WebService出现Client.NoSOAPAction的问题
<br />关于这个问题网上有很多解决方法,关键是AxisServlet在getSoapAction这个方法有点问题。解决方法就是集成这个AxisServlet然后重写getSoapAction方法。代码片段:<br /> <br /> @Override private String getSoapAction(HttpServletRequest request) throws AxisFault { return request.getContextPath();原创 2010-12-21 14:35:00 · 2172 阅读 · 1 评论 -
六、传递、返回复杂类型的对象
<br />上面的服务传递的是简单数据类型,返回的也是简单数据类型。下面我们用JavaBean 、List、Map、Array等返回值或参数完成WebService。<br />1、首先看看JavaBean模式的参数和返回值的WebService,JavaBean代码如下:<br />package com.hoo.entity;import java.io.Serializable;/** * <b>function:</b>User Entity * @author hoojo *原创 2010-12-21 14:14:00 · 1894 阅读 · 0 评论 -
axis文件传递,NoClassDefFoundError: com/sun/mail/util/LineInputStream 和 com/sun/activation/registries/LogSupport
java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream java.lang.NoClassDefFoundError:com/sun/activation/registries/LogSupport<br />NoClassDefFoundError: com/sun/mail/util/LineInputStream<br />NoClassDefFoundError: com/sun/activation/registries/L原创 2010-12-21 14:36:00 · 1857 阅读 · 0 评论 -
四、handler的作用及特性
<br />Axis中有一个basicHandler的抽象类,这个类可以供我们继承。可以完成很多复杂的功能,如:统计当前服务被调用的次数、验证服务调用信息等待<br />1、下面我们继承这个类,完成统计服务调用次数的功能;<br />RequestHandler代码如下:<br /> <br />package com.hoo.service.handler;import org.apache.axis.AxisFault;import org.apache.axis.MessageContext;原创 2010-12-21 14:05:00 · 1817 阅读 · 2 评论 -
五、Chain链的作用
<br />Chain是一个链,是Handler的链。也就是说一次请求可能要执行多个Handler。<br />1、下面我们就编写一个Handler,让它用chain的方法执行。<br /> package com.hoo.service.chain;import org.apache.axis.SimpleChain;import com.hoo.service.handler.RequestHandler;import com.hoo.service.handler.ResponseHand原创 2010-12-21 14:10:00 · 1500 阅读 · 0 评论 -
七、axis调用RMI模式WebService
<br />和先前写的web service几乎一样,不同的是这里写的WebService要实现接口,而我们实现的接口要继承rmi的Remote接口才行。<br />1、RMI接口,很简单的2个方法,继承Remote接口<br /> package com.hoo.rmi;import java.rmi.Remote;/** * <b>function:</b>用axis实现RMI调用 * @author hoojo * @createDate Dec 16, 2010 16:22:25原创 2010-12-21 14:18:00 · 1333 阅读 · 0 评论 -
九、WebService中文件传输
<br />WebService处理传递普通的信息,还可以传输文件,下面介绍WebService是怎么完成文件传输的。<br />1、 首先编写服务器端上传文件的WebService方法package com.hoo.service;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.InputStream;import javax.原创 2010-12-21 14:26:00 · 2011 阅读 · 0 评论 -
十、Axis WebService常用命令和调试工具
<br />上面我们在发布wsdd服务的时候都会在dos窗口写上一段命令,下面还介绍下其他的几个命令:<br /> <br />A、 AdminClient命令<br />java org.apache.axis.client.AdminClient c:/deploy.wsdd<br />这样就可以用AdminClient发布一个WebService了,如果你对AdminClient的参数信息不是很了解输入:java org.apache.axis.client.AdminClient就可以查看帮助了。<原创 2010-12-21 14:27:00 · 1457 阅读 · 0 评论 -
十一、用工具生成代码
<br />1、 用Axis提供的WSDL2java工具类生成代码,命令如下:<br />C:/SoftWare/tomcat-5.0.28/tomcat-5.0.28/webapps/AxisWebService/WEB-INF>java -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -s http://localhost:8080/AxisWebService/services/HelloWorldWSDD?wsdl –o c:/<br /原创 2010-12-21 14:29:00 · 1133 阅读 · 0 评论 -
十二、用Axis操作 Header头部信息
<br />Axis中操作Header的信息是通过Handler来完成的,在读取Header的信息的时候,可以完成Header的操作的Handler有JWSHandler、SOAPMonitorHandler、JAXRPCHandler。JWSHandler是完成jws发布模式的WebService的Header的读取操作,<br />SOAPMonitorHandler是完成SOAPMonitor模式的,JAXRPCHandler是java rpc模式的。<br />下面将会用JAXRPCHand原创 2010-12-21 14:33:00 · 2593 阅读 · 0 评论 -
四、 用axis2的辅助工具发布、调用WebService
这次我们编辑一个返回User对象、List、Map、User[]的形式,并且用axis2的工具完成发布WebService。不再复制class到axis2的工程目录下。 下面看看服务器端WebService代码: package com.hoo.service;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java原创 2011-03-16 01:54:00 · 2611 阅读 · 1 评论