cxf 客户端生成服务.doc_第1页
cxf 客户端生成服务.doc_第2页
cxf 客户端生成服务.doc_第3页
cxf 客户端生成服务.doc_第4页
cxf 客户端生成服务.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

java cxf webservice 生成客户端 调用 服务端 2013-03-21 13:44:46| 分类: 程序|举报|字号 订阅 我的项目环境:eclipse 、SSH框架最近在学习webserivce在java的使用,做了一个小例子。1、我的项目结构 项目名:InterfaceContorlAPPsrc下面,主要有config、dao、service、webapp 、applicationContext.xml 及资源文件等。2、包我在在现有项目中进行开发和调试,CXF用到的包在apache-cxf-2.6.1.gz 中都有。我大概根据项目中现有的包分析了一下,至少 要有: 以上也是我项目中用到的全部包。 2、新增WebService接口和实现类 在service 包下新建webservice包,主要区别与其他文件。 接口里面定义了两个方法 ,我都和数据库、表有关系,大家在测试时,可以写的简单些, 如:在方法 里只写一句打印之类。 接口名:DemoForWebService 源码:package service.webservice;import javax.jws.WebMethod;import javax.jws.WebParam;import javax.jws.WebResult;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import dao.code.model.User;/ZBY 20130319WebService(targetNamespace = http:/webservice.service)SOAPBinding public interface DemoForWebService WebResult(name = Message_Return,targetNamespace = http:/webservice.service, partName = Message_Return) WebMethod(operationName = getUserById, action = /xi/WebService/soap1.1) /示例 public User getUserById(WebParam(name = xtczdm) String xtczdm) throws Exception; public String updateUserByCmd(User user) throws Exception;实现类继续上面的接口:DemoForWebServiceImpl源码:package service.webservice.impl;import javax.jws.WebService;import javax.sql.DataSource;import dao.code.model.User;import service.code.UserService;import service.webservice.DemoForWebService;/* * author 作者 ZBY E-mail: * version 创建时间:2013-3-13 上午09:57:46 * 类说明 */WebService(endpointInterface = service.webservice.DemoForWebService,targetNamespace=http:/webservice.service/,portName=HTTP_Port)public class DemoForWebServiceImpl implements DemoForWebService private DataSource dataSource;/数据源 private UserService userService;/我用到的对象对应的serivce,主要用于下面对数据库的访问 public User getUserById(String xtczdm) throws Exception / TODO Auto-generated method stub User user = userService.findUserByXtczdm(xtczdm); return user; public String updateUserByCmd(User user) throws Exception / TODO Auto-generated method stub String result = True; String xtczdm = user.getXtczdm(); User u = userService.findUserByXtczdm(xtczdm); if(u!=null) u.setXtczkl(user.getXtczkl(); userService.persistUser(u); result = u.getXtczkl(); else result =false; return result; public DataSource getDataSource() return dataSource; public void setDataSource(DataSource dataSource) this.dataSource = dataSource; public UserService getUserService() return userService; public void setUserService(UserService userService) this.userService = userService; 3、配置文件 (1)我在 config包下单独建了一个webservice的配置文件,beanRef-service-webservice.xml 源码: !- - (2)要把(1)生成的文件,加入到applicationContext.xml,这主要是Spring的要求(3)在你的web.xml文件中增加如下内容: CXFServlet org.apache.cxf.transport.servlet.CXFServlet 1 CXFServlet /webservice/* 红色部分在后面的URL中要用到。4、测试是否配置成功 启动项目后,使用url访问。 这是我的访问URL::8080/InterfaceControlApp/webservice/demoForWebService?wsdl解析: http:/IP:端口号/项目访问名/web中配置url-pattern/beanRef-service-webservice.xml配置的address?wsdl成功后: 5、客户端调用 我主要是通过写main调用 方法一:使用cxf 写客户端调用 在common包下新增clientWS.java源码: package common;import java.beans.PropertyDescriptor;import .URL;import java.util.List;import space.QName;import org.apache.cxf.binding.corba.wsdl.ObjectFactory;import org.apache.cxf.endpoint.Client;import org.apache.cxf.endpoint.Endpoint;import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;import org.apache.cxf.service.Service;import org.apache.cxf.service.model.BindingInfo;import org.apache.cxf.service.model.BindingMessageInfo;import org.apache.cxf.service.model.BindingOperationInfo;import org.apache.cxf.service.model.MessagePartInfo;import org.apache.cxf.service.model.ServiceInfo;import dao.code.model.User;import service.webservice.DemoForWebService;import service.webservice.impl.DemoForWebServiceImpl; /* * author 作者 E-mail: * version 创建时间:2013-3-19 下午01:46:47 * 类说明 :8080/InterfaceControlApp/webservice/demoForWebService?wsdl */public class clientWS public static void main(String args) throws Exception /* * 方法三*/ JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); / 注册WebService接口 factory.setServiceClass(DemoForWebService.class); / 设置WebService地址 factory.setAddress(:8080/InterfaceControlApp/webservice/demoForWebService); DemoForWebService dfw = (DemoForWebService) factory.create(); System.out.println(invoke webservice.); String xtczdm =admin; /根据操作代码得到用户 User user = dfw.getUserById(xtczdm); if(user != null) WebLogs.getLogger().info(user is not null!); /修改用户密码 user.setXtczkl(test); String result = dfw.updateUserByCmd(user); WebLogs.getLogger().info(新密码:+result); else WebLogs.getLogger().info(NULL !); 运行成功后: 方法二:使用wsdl2java生成客户端1、需要 一个包:apache-cxf-2.6.1.gz这个包里有好多jar包,一定要下载下来。将此包解压,我是放在:E:CXFapache-cxf-2.6.1 2、将URL调用成功的页面内容,另存为XML 3、在cmd中通过wsdl2java生成客户端文件cd 进入apache-cxd-2.6.1bin目录执行命名:wsdl2java -p service.webservice.client.demo -d F:MyDocumentsJavawsInterfaceControlAppsrc -verbose F:demoForWebSerivce.xml解析wsdl2java -p 包名 -d 生成文件路径 -verbose wsdl文件路径 然后再拷贝到项目里包名:文件存放的包名,可以写项目中包路径 生成文件路径 :文件存放路径,可以直接写项目路径wsdl文件:在IE中执行服务端URL显示的XML另存为XML文件。 我是直接到项目路径了,生成前: 生成后: 报错处理:4、写MAIN调用 package common;import javax.xml.ws.Service;import service.webservice.client.demo.DemoForWebService;import service.webservice.client.demo.DemoForWebServiceImplService;import service.webservice.client.demo.User;/* * author 作者 E-mail: * version 创建时间:2013-3-20 下午03:39:29 * 类说明 */public class TestWSClientByZBY /* * param args */ public static void main(String args) / TODO Auto-generated method stub Service service = Service.create(DemoForWebServiceImplService.SERVICE); String endpointAddress = :8080/InterfaceCont

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论