随笔 - 157  文章 - 3  评论 - 1356 
  2011年3月30日
摘要:上次介绍了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百度文库:http://wenku.baidu.com/view/f7f8211e59eef8c75fbfb398.html索引一、CXF WebService准备工作 阅读全文
posted @ 2011-03-30 11:52 hoojo 阅读(8070) 评论(1) 推荐(1) 编辑
摘要:前面介绍的都是传递简单的字符串,现在开始介绍传递复杂类型的对象。如JavaBean、Array、List、Map等。 1、 首先看看服务器端的代码所需要的JavaBean对象 package com.hoo.entity;import java.io.Serializable;/** * <b>function:</b>User Entity * @author hoojo * @createDa... 阅读全文
posted @ 2011-03-30 10:51 hoojo 阅读(31937) 评论(8) 推荐(1) 编辑
摘要:首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spring的jar包是Spring官方提供的,并没有使用CXF中的Spring的jar文件。 添加这么多文件后,首先在web.xml中添加如下配置: <!-- 加载Spring容器配置 --><listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><!-- 设置Spring容器加载配置文件路径 --&g 阅读全文
posted @ 2011-03-30 10:50 hoojo 阅读(159728) 评论(34) 推荐(17) 编辑
摘要:前面在Axis中介绍过Axis的Handler,这里CXF的Interceptor就和Handler的功能类似。在每个请求响应之前或响应之后,做一些事情。这里的Interceptor就和Filter、Struts的Interceptor很类似,提供它的主要作用就是为了很好的降低代码的耦合性,提供代码的内聚性。下面我们就看看CXF的Interceptor是怎么样工作的。 1、 我们就用上面的HelloWorldService,客户端的调用代码重新写一份,代码如下: package com.hoo.client;import org.apache.cxf.interceptor.LoggingIn 阅读全文
posted @ 2011-03-30 10:12 hoojo 阅读(34453) 评论(1) 推荐(3) 编辑
  2011年3月29日
摘要:又一HelloWorld示例,老套的HelloWorld是入门经典。也是基础和必须掌握的,下面看看HelloWorldWebService,很简单。 需要的jar包如下: 1、 HelloWorldService服务器端代码 package com.hoo.service;import javax.jws.WebParam;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;/** * <b>function:</b>C 阅读全文
posted @ 2011-03-29 15:55 hoojo 阅读(17413) 评论(19) 推荐(4) 编辑
摘要: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 也是... 阅读全文
posted @ 2011-03-29 15:21 hoojo 阅读(14836) 评论(1) 推荐(1) 编辑
  2011年3月28日
摘要:jquery-lib版本是 1.3.2的,该插件是简单的扩展插件,代码也比较简单的封装。所以看起来也比较简单不是很费力,当然封装得也不是很好。不过做了浏览器方面的兼容,经测试兼容IE6+、Firefox3.5+首先看看autocomplete.js:;(function ($) { var index = -1; var timeId; var cssOptions = { "border": "1px solid black", "background-color": "white", "positio 阅读全文
posted @ 2011-03-28 12:11 hoojo 阅读(18008) 评论(6) 推荐(5) 编辑
  2011年3月21日
摘要:在eclipse/MyEclipse中,如果你的注释或是运行System.out.print(new java.util.Date());的时候,发现时间和系统的时间差8个小时。 那么就可以说明,你的时区和当前时区不对应。我们中国用的时区是Asia/Shanghai,你的差8小时应该是东八区的。关于这一点 你不懂可以看看初中地理:D。 解决办法有2种: 1、在你的eclipse/MyEclips... 阅读全文
posted @ 2011-03-21 11:31 hoojo 阅读(15883) 评论(2) 推荐(2) 编辑
  2011年3月16日
摘要:1、新建Session的WebService测试代码,代码很简单。就是记录用户登录的状态信息,放在MessageContext的ServiceContext中。代码如下:代码package com.hoo.service;import org.apache.axis2.context.MessageContext;import org.apache.axis2.context.ServiceContext;/** * <b>function:</b>WebService Session会话消息 * @author hoojo * @createDate 2011-3-8 阅读全文
posted @ 2011-03-16 10:54 hoojo 阅读(12992) 评论(2) 推荐(1) 编辑
摘要:Axis的简单准备 Axis的入门实例 Axis复杂对象类型的WebService Axis的辅助工具发布、调用WebService Axis WebService会话Session的管理 Axis用控制台Dos命令发布WebService Axis跨多个WebService管理Session Axis用Spring的JavaBean发布WebService Axis异步调用WebService Axis 的Module模块 Axis使用SoapMonitor监视WebService的请求和响应信息百度文库:http://wenku.baidu.com/view/12501ed7195f312 阅读全文
posted @ 2011-03-16 10:51 hoojo 阅读(7480) 评论(0) 推荐(3) 编辑
摘要:使用soapMonitor可以监视到请求和响应的WebService的基本信息,可以讲响应在控制台的信息显示在applet控件上。 步骤如下: 1、 部署相关的applet和servlet Axis2有自带的monitor模块,这里就不需要单独安装。在[tomcat_home]\webapps\axis2\WEB-INF\lib目录中,找到axis2-soapmonitor-servlet-1.5... 阅读全文
posted @ 2011-03-16 10:41 hoojo 阅读(4608) 评论(0) 推荐(1) 编辑
摘要:Axis可以通过Module模块进行扩展,用户可以编写定制自己的Module模块。编写一个Module的模块至少需要实现两个接口,分别是Handler和Module接口。开发axis2的Module模块需要如下步骤: 1、 实现Module接口的实现类,这个类要完成基本的初始化、销毁等操作 2、 实现Handler接口的实现类,这个类主要是完成业务处理 3、 在META-INF目录下,创建modu... 阅读全文
posted @ 2011-03-16 10:36 hoojo 阅读(2403) 评论(2) 推荐(1) 编辑
摘要:异步,说到异步需要首先将以下同步。同步就是代码按照顺序执行,当前面的代码的请求没有正常返回结果的情况下,后面的代码是不能运行。而异步正好和这点不同,异步是代码运行后,不管当前的请求是否返回结果,后面的代码都会继续运行。 关于异步在此就不再赘述了,有兴趣的可以去网上查查这方面的资料。 1、 编写服务器端的代码。 代码package com.hoo.service;/** * <b>function:... 阅读全文
posted @ 2011-03-16 10:26 hoojo 阅读(6441) 评论(2) 推荐(2) 编辑
摘要:1、首先,看看这个简单的类代码: 代码package com.hoo.service;/** * <b>function:</b>Spring的装载Bean的Service * @author hoojo * @createDate 2011-3-9 下午06:30:26 * @file SpringService.java * @package com.hoo.service * @projec... 阅读全文
posted @ 2011-03-16 10:18 hoojo 阅读(6200) 评论(6) 推荐(1) 编辑
摘要:当多个WebService的时候,我们要管理它的Session。这个时候我们得依靠ServiceGroupContext保存session信息;然后在发布WebService的时候,services.xml文件的的service表情的scope就不再说request或是transportsession了,而是application;最后同样要开启对session的管理,即options.setMa... 阅读全文
posted @ 2011-03-16 10:07 hoojo 阅读(3831) 评论(1) 推荐(1) 编辑
摘要:这次我们编辑一个返回User对象、List<User>、Map<String, User>、User[]的形式,并且用axis2的工具完成发布WebService。不再复制class到axis2的工程目录下。 下面看看服务器端WebService代码: 代码package com.hoo.service;import java.util.ArrayList;import java.util.Has... 阅读全文
posted @ 2011-03-16 09:54 hoojo 阅读(8505) 评论(11) 推荐(2) 编辑
  2011年3月15日
摘要:1、这次我们编写复杂点的WebService方法,返回的数据是我们定义属性带getter、setter方法JavaBean,一维数组、二维数组等。 看代码: 代码import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.util.Random;import data.User... 阅读全文
posted @ 2011-03-15 18:59 hoojo 阅读(8108) 评论(2) 推荐(1) 编辑
摘要:1、编写一个简单的WebService的服务器端代码,代码如下: 代码import java.util.Random;/** * <b>function:</b> WebService HelloWorld服务示例 * @author hoojo * @createDate 2011-1-5 下午03:35:06 * @file HelloWorldService.java * @package ... 阅读全文
posted @ 2011-03-15 18:52 hoojo 阅读(8334) 评论(0) 推荐(3) 编辑
摘要:上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。Axis1.x在线博文:http://www.cnblogs.com/hoojo/archive/2010/12/20/1911349.html1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。下载地址:http://axis.apache.org/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。下载页面:http://axis.apach 阅读全文
posted @ 2011-03-15 18:44 hoojo 阅读(8729) 评论(1) 推荐(1) 编辑
  2011年1月13日
摘要:Internet Explorer 6中查看使用 Microsoft JScript 的网页,可能会遇到web浏览器速度较慢的性能问题。原因是如果js脚本同时创建大量变量,jscript引擎执行垃圾收集算法时会监视脚本中变量分配的数量、脚本中使用的文字值的数量和脚本中分配的字符串值的总大小,如果超过这些值的阈值,就会发生垃圾收集,垃圾收集进程会中断正在运行的脚本。因此,这些运行中的脚本将被挂起,直至垃圾收集完成为止。IE6 、 IE7 、 IE8 在 CSS 和 JS 方面的区别 : 1、IE8中的css中关于width或是height中如果使用像素形式作为参数时,参数必须是带“px”的,而且 阅读全文
posted @ 2011-01-13 11:19 hoojo 阅读(36191) 评论(2) 推荐(6) 编辑
  2011年1月7日
摘要:SSHExtTree 百度文库提供下载:http://wenku.baidu.com/view/485e4d36f111f18583d05aed.html 开标题就知道是Struts、Spring、Hibernate、ExtJS的Tree实例文档,其中包括Filter功能的checkNodeTree、comboBoxCheckNodeTree、comboBoxTree这三种扩展的tree。不错,如... 阅读全文
posted @ 2011-01-07 11:58 hoojo 阅读(18970) 评论(21) 推荐(7) 编辑
  2010年12月23日
摘要:WebService处理传递普通的信息,还可以传输文件,下面介绍WebService是怎么完成文件传输的。1、 首先编写服务器端上传文件的WebService方法代码上传方法和我们以前在Web中上传唯一不同的就是参数一DataHandler,可以将这类看成文件传输器,他可以把文件序列化。然后通过DataHandler可以得到一个输入流InputStream,通过这个流可以读到文件的内容。其他的操作和普通上传类似。2、 定制wsdd发布文件上传的WebService服务代码上面才xml节点元素在前面都见过了,说明下operation中的参数,注意要指定参数类型,特别是DataHandler的类型 阅读全文
posted @ 2010-12-23 11:44 hoojo 阅读(33500) 评论(2) 推荐(3) 编辑
摘要:上面的服务传递的是简单数据类型,返回的也是简单数据类型。下面我们用JavaBean 、List、Map、Array等返回值或参数完成WebService。1、首先看看JavaBean模式的参数和返回值的WebService,JavaBean代码如下:代码没有上面特别就是一个普通的Java对象,里面提供一些属性及getter、setter方法和toString方法(在显示数据的时候有用),值得注意的是在远程调用的Java对象都需要实现Serializable接口,这样在网络中传递对象的时候就不会出现重复的JavaBean。用过或是了解EJB、RMI的朋友应该知道这点。序列化后的对象可以用io进行 阅读全文
posted @ 2010-12-23 11:43 hoojo 阅读(16025) 评论(1) 推荐(3) 编辑
  2010年12月21日
摘要:java.lang.NoClassDefFoundError:com/sun/mail/util/LineInputStream java.lang.NoClassDefFoundError:com/sun/activation/registries/LogSupportNoClassDefFoundError: com/sun/mail/util/LineInputStreamNoClassDefFoundError: com/sun/activation/registries/LogSupport原因:mail.jar 中的方法和j2ee5中的方法有冲突。删除默认的方法:D:\Progra 阅读全文
posted @ 2010-12-21 11:18 hoojo 阅读(1409) 评论(1) 推荐(1) 编辑
  2010年12月20日
摘要:关于这个问题网上有很多解决方法,关键是AxisServlet在getSoapAction这个方法有点问题。解决方法就是集成这个AxisServlet然后重写getSoapAction方法。代码片段:[代码] 然后在web.xml中配置你继承的AxisServlet,就不再是原来的AxisServlet了。 阅读全文
posted @ 2010-12-20 14:41 hoojo 阅读(3194) 评论(0) 推荐(0) 编辑
摘要:至此,axis的WebService的技术指南,基本就这么多内容。由于时间的仓促和个人的原因等诸多方面的因素,难免使得这篇文档存在些错误。但这篇文档上的代码都是经过运行测试通过的。要感谢广大IT朋友的无私奉献,使得这篇文档的出现。本人在学习axis的时候参阅了大量来自互联网的技术文章,以及官方的文档。参考文档:http://ws.apache.org/axis/java/user-guide.html如果你发现这篇文档有什么问题,或是对这篇文档有更好的内容补充你可以发邮件到我的邮箱或是用QQ取得联系,也欢迎去我的博客留言,也欢迎大家一起交流探讨。Email:hoojo_@126.comBlog 阅读全文
posted @ 2010-12-20 14:41 hoojo 阅读(670) 评论(0) 推荐(1) 编辑
摘要:Axis中操作Header的信息是通过Handler来完成的,在读取Header的信息的时候,可以完成Header的操作的Handler有JWSHandler、SOAPMonitorHandler、JAXRPCHandler。JWSHandler是完成jws发布模式的WebService的Header的读取操作,SOAPMonitorHandler是完成SOAPMonitor模式的,JAXRPCHandler是java rpc模式的。下面将会用JAXRPCHandler读取客户端的Header信息,然后用BasicHandler将客户端请求的Header写入客户端的响应的Header中。1、 阅读全文
posted @ 2010-12-20 14:40 hoojo 阅读(12117) 评论(0) 推荐(0) 编辑
摘要:1、 用Axis提供的WSDL2java工具类生成代码,命令如下:C:\SoftWare\tomcat-5.0.28\tomcat-5.0.28\webapps\AxisWebService\WEB-INFjava -Djava.ext.dirs=lib org.apache.axis.wsdl.WSDL2Java -s http://localhost:8080/AxisWebService/services/HelloWorldWSDD?wsdl –o c:\-s 是设置wsdl的路径url和是当前物理硬盘上的wsdl文件(可以将页面上的wsdl的xml文件另存为一份试试,也是可以的)- 阅读全文
posted @ 2010-12-20 14:38 hoojo 阅读(3953) 评论(3) 推荐(0) 编辑
摘要:上面我们在发布wsdd服务的时候都会在dos窗口写上一段命令,下面还介绍下其他的几个命令:A、 AdminClient命令java org.apache.axis.client.AdminClient c:/deploy.wsdd这样就可以用AdminClient发布一个WebService了,如果你对AdminClient的参数信息不是很了解输入:java org.apache.axis.client.AdminClient就可以查看帮助了。Usage: AdminClient [Options] [list | deployment-descriptor-files]Processes 阅读全文
posted @ 2010-12-20 14:36 hoojo 阅读(5247) 评论(0) 推荐(0) 编辑
摘要:在数据传递和远程调用过程中,有时候调用者传递错误的数据和是调用的方法错误。那我们怎样处理这个错误?方法有很多,这里介绍下用异常处理远程调用的错误方法。1、编写服务器端的异常类,在远处调用中(WebService)异常类继承RemoteException,记得要序列化下,代码如下:代码2、编写客户端的异常信息类,和前面远程传递对象一样。因为我们并不知道服务器端的异常信息类代码,但是通过wsdl的xml文件的描述我们可以知道远程异常类的基本信息:方法、方法参数、返回值等信息,下面是客户端的异常信息类代码:代码内容几乎一样,就是类名称不同。3、编写触发异常的WebService服务器端代码代码4、定 阅读全文
posted @ 2010-12-20 14:31 hoojo 阅读(12743) 评论(0) 推荐(1) 编辑