五、CXF WebService整合Spring.docx_第1页
五、CXF WebService整合Spring.docx_第2页
五、CXF WebService整合Spring.docx_第3页
五、CXF WebService整合Spring.docx_第4页
五、CXF WebService整合Spring.docx_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

五、CXF WebService整合Spring首先,CXF和spring整合需要准备如下jar包文件: 这边我是用Spring的jar包是Spring官方提供的,并没有使用CXF中的Spring的jar文件。 添加这么多文件后,首先在web.xml中添加如下配置: org.springframework.web.context.ContextLoaderListener contextConfigLocation classpath*:applicationContext-server.xml org.springframework.web.util.IntrospectorCleanupListener CXFService org.apache.cxf.transport.servlet.CXFServlet CXFService /*然后在src目录中,新建一个applicationContext-server.xml文件,文件内容如下: /schema/beans/spring-beans-3.0.xsd /schema/context /schema/context/spring-context-3.0.xsd /jaxws /schemas/jaxws.xsd注意上面的带下划线加粗部分,这个很重要的哦!不能写错或是遗漏了。 添加完这个文件后,还需要在这个文件中导入这么几个文件。文件内容如下: 下面开始写服务器端代码,首先定制服务器端的接口,代码如下: package com.hoo.service; import javax.jws.WebParam;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import com.hoo.entity.User;import com.hoo.entity.Users; /* * function:定制客户端请求WebService所需要的接口 * author hoojo * createDate 2011-3-18 上午08:22:55 * file ComplexUserService.java * package com.hoo.service * project CXFWebService * blog /IBM_hoojo * email hoojo_126.com * version 1.0 */WebServiceSOAPBinding(style = Style.RPC)public interface IComplexUserService public User getUserByName(WebParam(name = name) String name); public void setUser(User user);下面编写WebService的实现类,服务器端实现代码如下: package com.hoo.service; import java.util.ArrayList;import java.util.Date;import java.util.HashMap;import java.util.List;import javax.jws.WebParam;import javax.jws.WebService;import javax.jws.soap.SOAPBinding;import javax.jws.soap.SOAPBinding.Style;import com.hoo.entity.User;import com.hoo.entity.Users; /* * function: WebService传递复杂对象,如JavaBean、Array、List、Map等 * author hoojo * createDate 2011-3-18 上午08:22:55 * file ComplexUserService.java * package com.hoo.service * project CXFWebService * blog /IBM_hoojo * email hoojo_126.com * version 1.0 */WebServiceSOAPBinding(style = Style.RPC)SuppressWarnings(deprecation)public class ComplexUserService implements IComplexUserService public User getUserByName(WebParam(name = name) String name) User user = new User(); user.setId(new Date().getSeconds(); user.setName(name); user.setAddress(china); user.setEmail(name + ); return user; public void setUser(User user) System.out.println(#Server setUser#); System.out.println(setUser: + user); 注意的是和Spring集成,这里一定要完成接口实现,如果没有接口的话会有错误的。 下面要在applicationContext-server.xml文件中添加如下配置: 下面启动tomcat服务器后,在WebBrowser中请求: http:/localhost:8080/CXFWebService/Users?wsdl 如果你能看到wsdl的xml文件的内容,就说明你成功了,注意的是上面地址的Users就是上面xml配置中的address的名称,是一一对应的。 下面编写客户端请求的代码,代码如下: package com.hoo.client; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import com.hoo.entity.User;import com.hoo.service.IComplexUserService; /* * function:请求Spring整合CXF的WebService客户端 * author hoojo * createDate 2011-3-28 下午03:20:35 * file SpringUsersWsClient.java * package com.hoo.client * project CXFWebService * blog /IBM_hoojo * email hoojo_126.com * version 1.0 */public class SpringUsersWsClient public static void main(String args) /调用WebService JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); factory.setServiceClass(IComplexUserService.class); factory.setAddress(http:/localhost:8080/CXFWebService/Users); IComplexUserService service = (IComplexUserService) factory.create(); System.out.println(#Client getUserByName#); User user = service.getUserByName(hoojo); System.out.println(user); user.setAddress(China-Guangzhou); service.setUser(user); 运行后,可以在控制台中看到log4j:WARN No appenders could be found for logger (org.apache.cxf.bus.spring.BusApplicationContext).log4j:WARN Please initialize the log4j system properly.log4j:WARN See /log4j/1.2/faq.html#noconfig for more info.2011-3-28 18:12:26 org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass信息: Creating Service /IComplexUserServiceService from class com.hoo.service.IComplexUserService#Client getUserByName#27#hoojo##chinaTomcat控制台 这个server端是通过Spring整合配置的,下面我们将Client端也通过Spring配置完成整合。 首先增加applicationContext-client.xml配置文件,文件内容如下: /schema/beans/spring-beans-3.0.xsd /schema/context /schema/context/spring-context-3.0.xsd /jaxws /schemas/jaxws.xsd 客户端请求代码如下: package com.hoo.client; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;import com.hoo.entity.User;import com.hoo.service.IComplexUserService; /* * function:请求Spring整合CXF的WebService客户端 * author hoojo * createDate 2011-3-28 下午03:20:35 * file SpringUsersWsClient.java * package com.hoo.client * project CXFWebService * blog /IBM_hoojo * email hoojo_126.com * version 1.0 */public class SpringUsersWsClient public static void main(String args) ApplicationContext ctx = new ClassPathXmlApplicationContext(applicationContext-client.xml); IComplexUserService service = ctx.getBean(userWsClient, IComplexUserService.class); System.out.p

温馨提示

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

评论

0/150

提交评论