Cxf - Spring集成调用WebServices
2014-04-19 21:37
459 查看
一、新建Web工程
1、导入Struts Core、Struts Spring、Spring Core、Spring Web和Cxf的相关jar包;通过Cxf的wsdl2java工具生成WS相关的代码
2、本例使用 Cxf-Spring集成暴露WebServices 中暴露的WS为调用目标
3、完成之后,接口如下:
二、新建Action和调用需要的Interceptor
1、web.xml
四、新建struts中配置的jsp文件
调用成功!
六、资源下载
http://download.csdn.net/detail/u013379717/7220085
1、导入Struts Core、Struts Spring、Spring Core、Spring Web和Cxf的相关jar包;通过Cxf的wsdl2java工具生成WS相关的代码
2、本例使用 Cxf-Spring集成暴露WebServices 中暴露的WS为调用目标
3、完成之后,接口如下:
二、新建Action和调用需要的Interceptor
public class UserBookAction extends ActionSupport { private static final long serialVersionUID = 3826430837838869209L; // 远程Web Services对象的代理 (接口) private UserInfoWs userInfoWs; private List<Book> books; @Override public String execute() throws Exception { User u = new User(); u.setName("Admin"); books = userInfoWs.getBookByUser(u); return SUCCESS; } public UserInfoWs getUserInfoWs() { return userInfoWs; } public void setUserInfoWs(UserInfoWs userInfoWs) { this.userInfoWs = userInfoWs; } public List<Book> getBooks() { return books; } public void setBooks(List<Book> books) { this.books = books; } }
public class ClientAuthOutInterceptor extends AbstractPhaseInterceptor<SoapMessage> { private String name; private String pwd; public ClientAuthOutInterceptor(String name, String pwd) { // 在消息发送之前调用 super(Phase.PREPARE_SEND); this.name = name; this.pwd = pwd; } public void handleMessage(SoapMessage message) throws Fault { List<Header> headers = message.getHeaders(); Document doc = DOMUtils.createDocument(); Element element = doc.createElement("userInfo"); Element nameEle = doc.createElement("userName"); nameEle.setTextContent(name); Element passEle = doc.createElement("userPass"); passEle.setTextContent(pwd); element.appendChild(nameEle); element.appendChild(passEle); Header header = new Header(new QName("xilen"), element); headers.add(header); } }三、配置相关xml文件
1、web.xml
<?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>*.action</url-pattern> </filter-mapping> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> </web-app>2、struts.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name="default" namespace="/" extends="struts-default"> <action name="userbook" class="com.xilen.view.UserBookAction"> <result>/userbook.jsp</result> </action> </package> </struts>3、applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <import resource="classpath:META-INF/cxf/cxf.xml" /> <import resource="classpath:META-INF/cxf/cxf-servlet.xml" /> <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <!-- Action依赖的是远程WebService的对象代理,所以serviceClass指向远程对象代理接口;address即远程Endpoint地址;id即Action中属性名称 --> <jaxws:client id="userInfoWs" serviceClass="com.xilen.cxf.ws.UserInfoWs" address="http://127.0.0.1:8080/CxfSpringServer/cxf/userinfo"> <!-- 拦截器 --> <jaxws:outInterceptors> <bean class="com.xilen.inter.ClientAuthOutInterceptor" > <constructor-arg value="CxfName"/> <constructor-arg value="CxfPass"/> </bean> </jaxws:outInterceptors> </jaxws:client> </beans>
四、新建struts中配置的jsp文件
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head><title>User Book</title></head> <body> <table border="1"> <c:forEach items="${books}" var="book"> <tr><td width="200px;" align="center"><c:out value="${book.name}"></c:out></td></tr> </c:forEach> </table> </body> </html>五、加载到Tomcat并启动
调用成功!
六、资源下载
http://download.csdn.net/detail/u013379717/7220085
相关文章推荐
- spring-cxf集成rest实现webservice以及调用过程
- CXF WebServices 集成Spring
- spring和CXF集成来实现webservices
- 在 Spring中集成CXF--->演示webservice服务的发布及调用
- spring和CXF集成来实现webservices
- spring和CXF集成来实现webservices
- spring和CXF集成来实现webservices
- CXF与Spring集成,方便的调用WebService
- Spring集成CXF客户端调用时正常,但是JBOSS日志ERROR的解决方案
- Cxf - Spring集成Cxf暴露WebServices
- spring+cxf调用webservice接口
- spring boot 集成WebService Cxf简单实例(soap)
- CXF与Spring集成的简单配置
- spring boot整合cxf发布webservice服务和spring boot整合cxf客户端调用webservice服务
- cxf+spring 客户端调用
- spring集成cxf初探(经过测试)
- [webservices开发]集成Spring
- springboot1.5.4 集成cxf完整实例
- Cxf 集成spring完整示例
- 使用CXF与Spring集成实现RESTFul WebService