




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
AXIS实现WebService文章分类:Java编程 AXIS实现WebService webservice里面对axis最熟悉了吧。做过一个CRM系统使用这个东东,不过还没有好好的测试一下他能 承受的压力。据说SOAP的效率不高。 结合SPRING + axis配置和使用起来都比较简单。 首先是下载axis过来咯。是apache的。 然后需要修改web.xml文件,配置axis的servlet: axis org.apache.axis.transport.http.AxisServlet 4 axis /axis/* 增加了一个wsdd文件server-config.wsdd在WebRoot/WEB-INF下面: 其中的有些地方需要修改: 要改成自己的类名和包名 webservice设置一个自己的spring配置文件,配置服务端和客户端,applicationContext-webservice.xml: com.sillycat.core.webservice.IUserManager org.apache.axis.client.ServiceFactory http:/localhost/easyLife/axis/User?wsdl http:/localhost/easyLife/axis/User JaxRpcUserServiceService User com.sillycat.core.webservice.IUserManager 配置就到这里结束了。另外说说类的结构 webservice下面分别有三块 webservice/impl/ JaxRpcUserService.java 核心实现类 webservice/model IUser.java 和外部接口决定的接口类,不能直接用自己的User对象抛给别人,都要定义接口 webservice/transformer UserTransformer.java 接口类和内部类的转换工具 webservice IUserManager.java 抛给别人的接口,不能直接把内部的spring bean给别人使用,接口上专门包装一 个bean webservice/axis 客户端调用的时候使用的plugin类,放置在plugin下面吧。在接口上要注册了 IUser类 才能相互传递 AxisPortProxyFactoryBean.java IUserManager.java类,提供给外部的接口: package com.sillycat.core.webservice; import java.util.List; import com.sillycat.core.webservice.model.IUser; public interface IUserManager public List getAllUser(); public IUser getUser(Integer id); public void saveUser(IUser user); public void removeUser(Integer id); JaxRpcUserService.java接口实现类,调用内部的manager完成业务逻辑: package com.sillycat.core.webservice.impl; import java.util.List; import org.springframework.remoting.jaxrpc.ServletEndpointSupport; import com.sillycat.core.model.User; import com.sillycat.core.service.UserManager; import com.sillycat.core.webservice.IUserManager; import com.sillycat.core.webservice.model.IUser; import com.sillycat.core.webservice.transformer.UserTransformer; public class JaxRpcUserService extends ServletEndpointSupport implements IUserManager private UserManager userManager; protected void onInit() userManager = (UserManager) getWebApplicationContext().getBean( userManager); public List getAllUser() return userManager.getAllUser(); public IUser getUser(Integer id) User u = userManager.getUser(id); IUser i = UserTransformer.transformUser2IUser(u); return i; public void removeUser(Integer id) userManager.removeUser(id); public void saveUser(IUser i) User u = UserTransformer.transformIUser2User(i); userManager.saveUser(u); IUser.java定义的接口,相互传递参数: package com.sillycat.core.webservice.model; import java.io.Serializable; import mons.lang.builder.ToStringBuilder; public class IUser implements Serializable private static final long serialVersionUID = 1993559722178981779L; private Integer id; private String name; public IUser() public IUser(String name) = name; public Integer getId() return id; public void setId(Integer id) this.id = id; public String getName() return name; public void setName(String name) = name; public String toString() return new ToStringBuilder(this).append(name, ).append(id, this.id).toString(); UserTransformer.java转换类,接口和内部类的转换: package com.sillycat.core.webservice.transformer; import com.sillycat.core.model.User; import com.sillycat.core.webservice.model.IUser; public class UserTransformer public static IUser transformUser2IUser(User u) IUser i = new IUser(); i.setId(u.getId(); i.setName(u.getName(); return i; public static User transformIUser2User(IUser i) User u = new User(); u.setId(i.getId(); u.setName(i.getName(); return u; AxisPortProxyFactoryBean.java客户端调用时的基类: package com.sillycat.plugin.webservice.axis; import space.QName; import javax.xml.rpc.Service; import javax.xml.rpc.encoding.TypeMapping; import javax.xml.rpc.encoding.TypeMappingRegistry; import org.apache.axis.encoding.ser.BeanDeserializerFactory; import org.apache.axis.encoding.ser.BeanSerializerFactory; import org.springframework.remoting.jaxrpc.JaxRpcPortProxyFactoryBean; import com.sillycat.core.webservice.model.IUser; public class AxisPortProxyFactoryBean extends JaxRpcPortProxyFactoryBean protected void postProcessJaxRpcService(Service service) TypeMappingRegistry registry = service.getTypeMappingRegistry(); TypeMapping mapping1 = registry.createTypeMapping(); registerBeanMapping(mapping1, IUser.class, IUser); registry.register(/soap/encoding/, mapping1); protected void registerBeanMapping(TypeMapping mapping, Class type, String name) QName qName = new QName(urn:BeanService, name); mapping.register(type, qName, new BeanSerializerFactory(type, qName), new BeanDeserializerFactory(type, qName); 嘿嘿。最后单元测试一下就行了,UserManagerRemoteTest.java: package com.sillycat.core.webservice; import com.sillycat.core.webservice.model.IUser; import mons.base.ServiceTestBase; public class UserManagerRemoteTest extends ServiceTestBase protected void setUp() t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 规范经营承诺书参考样本6篇
- 单招文综考试试卷及答案
- 2025年乡村旅游观光车租赁合同书
- 2025年广西玉林市继续教育公需课考试题(含答案)
- 用电安全考试题目及答案
- 播音模拟考试过程及答案
- 市场推广和营销活动合作合同
- 编制考试题库卷子及答案
- 调饮师操作技能考试题及答案
- 容县学校笔试题目及答案
- GB 14536.9-1996家用和类似用途电自动控制器电动水阀的特殊要求(包括机械要求)
- 《百团大战》历史课件
- 尿培养标本的留取规范及临床意义课件
- 名贵药材-三七课件
- 国学《弟子规》 课件
- 中山大学2019级本科培养方案修订说明
- 股骨干骨折的护理查房课件
- 六年级上册美术课件-5.蔬菜的联想 |苏少版 (共65张PPT)
- (完整)脑瘫儿童康复评估量表
- 2023新版南农《美学与大学生艺术素养》整理
- 燕窝知识讲解燕窝品鉴会
评论
0/150
提交评论