- 浏览: 1214520 次
- 性别:
- 来自: 广州
博客专栏
-
Apache CXF使用s...
浏览量:110046
文章分类
- 全部博客 (189)
- Spring (13)
- Hibernate (10)
- liferay portal (3)
- Java (18)
- 数据库 (32)
- JS (12)
- Eclipse (16)
- Log4j (3)
- 我的收藏夹 (8)
- FF and IE (2)
- Groovy Grails (0)
- Web Service (16)
- Quartz (6)
- Tomcat (8)
- Linux (4)
- xml (4)
- Silverlight (1)
- Flex (10)
- JBoss (4)
- EJB (2)
- WAS(webSphere) (5)
- DOS命令 (2)
- JSON (2)
- Maven (1)
- OThers (1)
- SVN (1)
- iBatis (4)
- OS (1)
- 问题解决 (8)
- 待看文章 (2)
- 多线程 (2)
- 代码收藏(即拿即用工具类) (5)
- Socket (2)
- Android (4)
- 其他 (1)
- python (1)
- Genymotion (1)
最新评论
-
a807966224:
还是 多谢楼主 总结的挺好的 !!!
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用) -
a807966224:
然后 通过 SOAPMessage.getHeader(qna ...
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用) -
a807966224:
我也是接触这东西不久,QName qname = new QN ...
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用) -
a807966224:
楼主 不知道你有没有出现 从headers 里取出来长 ...
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用) -
xdc0209:
兄弟呀,报错啦 2011-12-15 13:27:15 n ...
Hibernate+EhCache配置二级缓存
FROM: http://shade8109.blog.163.com/blog/static/130110604200911294257292/?fromdm&fromSearch&isFromSearchEngine=yes
1. 开发环境:
JDK 1.5, Tomcat 5.5.25, MyEclipse 6.0 其实也没什么特别之处.
2. 建立工程, 配好环境:
在MyEclipse下建立Web Project,取名为:wss, (意为:Webservice, Spring, Struts)
对wss增加:Web Service Capabilities, 记得选择XFire的Core Libraries
对wss增加:Struts Capabilities
3.修改web.xml,使之响应不同的请求以及XFire与Spring的结合
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
<display-name>YMCN-XFireService</display-name>
<!-- begin Spring配置 -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml</param-value>
</context-param>
<filter>
<filter-name>encodingFilter</filter-name>
<filter-class>org.ymcn.filter.CharacterEncoding</filter-class>
</filter>
<filter-mapping>
<filter-name>encodingFilter</filter-name>
<url-pattern>
4.在/WEB-INF/下编写applicationContext.xml 和 xfire-servlet.xml两文件,此二文件是必须的,前一个是Spring的,后一个是XFire的,其为被XFire自动加载.
applicationContext.xml 的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
</beans>
5.xfire-servlet.xml 的内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<!-- 引入XFire预配置信息 -->
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml"/>
<!-- 使用XFire导出器 -->
<bean id="baseWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter" lazy-init="false" abstract="true">
<!-- 引用xfire.xml中定义的工厂 -->
<property name="serviceFactory" ref="xfire.serviceFactory"/>
<!-- 引用xfire.xml中的xfire实例 -->
<property name="xfire" ref="xfire"/>
</bean>
<!-- 定义所有访问 WEB服务的url -->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="/HelloWorldService.ws">
<ref local="HelloWorldService"/>
</entry>
</map>
</property>
</bean>
<!-- HelloWorld WEB服务 -->
<bean id="HelloWorld" class="org.ymcn.ws.impl.HelloWorldImpl"/>
<bean id="HelloWorldService" parent="baseWebService">
<!-- 业务服务bean -->
<property name="serviceBean" ref="HelloWorld"/>
<!-- 业务服务bean的窄接口类 -->
<property name="serviceClass" value="org.ymcn.ws.HelloWorld"/>
</bean>
</beans>
此时,我们就已经构建出了一个Web Service,我们在IE中输入:http://localhost:8888/wss/HelloWorldService.ws?wsdl
就能看到WSDL.
6.通过Java application 测试:编写JAVA简单测试类:
首先,在wss/src下建个客户端调用Web Service的Spring配置文件:client.xml,内容为:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="HelloWorldService" class="org.codehaus.xfire.spring.remoting.XFireClientFactoryBean">
<property name="serviceClass"><value>org.ymcn.ws.HelloWorld</value></property>
<property name="wsdlDocumentUrl"><value>http://localhost:8888/wss/HelloWorldService.ws?wsdl</value></property>
</bean>
</beans>
到此我们可以通过client.xml获得HelloWorld
package org.ymcn.test.client;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.ymcn.ws.HelloWorld;
public class HelloWorld2 {
HelloWorld helloWorld = null;
public static void main(String[] args) {
HelloWorld2 test = new HelloWorld2();
test.testClient();
}
public void testClient() {
ApplicationContext ctx = new ClassPathXmlApplicationContext("client.xml");
helloWorld = (HelloWorld)ctx.getBean("HelloWorldService");
System.out.println(helloWorld.sayHello("老牛啊"));
}
}
运行此程序,如输出:你好啊,老牛啊 说明正确.
7.在表示层(Struts)通过JSP调用Web Service:
JSP文件:
<%@ page language="java" pageEncoding="utf-8"%>
<%@ taglib prefix="html" uri="html" %>
<%@ taglib prefix="bean" uri="bean" %>
<%@ taglib prefix="logic" uri="logic" %>
<html>
<head>
<title>测试WebService - HelloWorld</title>
</head>
<body>
<logic:present name="NAME" scope="request">
<font color="red"><bean:write name="NAME" scope="request"/></font>
</logic:present>
<br>
<form action="/wss/ws/HelloWorld.ymcn" method="post">
用户名:<input type="text" name="name" style="width:500px">
<br><br>
<input type="submit" name="Submit" value=" 提交 "/>
</form>
</body>
</html>
8,struts-config.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.2//EN" "http://struts.apache.org/dtds/struts-config_1_2.dtd">
<struts-config>
<data-sources />
<form-beans />
<global-exceptions />
<global-forwards />
<action-mappings>
<action path="/ws/HelloWorld" type="org.ymcn.struts.action.WSHelloWorldAction" scope="request" validate="false">
<forward name="hello-ok" path="/ws/helloWorld.jsp"/>
</action>
</action-mappings>
<message-resources parameter="org.ymcn.struts.i18n.i18n" />
</struts-config>
9.JSP请求Action类:WSHelloWorld
package org.ymcn.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.ymcn.ws.HelloWorld;
public class WSHelloWorldAction extends Action {
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws Exception {
String name = (String)request.getParameter("name");
ApplicationContext ctx = new ClassPathXmlApplicationContext("client.xml");
HelloWorld helloWorld = (HelloWorld)ctx.getBean("HelloWorldService");
String result = helloWorld.sayHello(name);
if(result == null) {
result = "对不起, 调用WEB服务失败, 请重试......";
}
request.setAttribute("NAME", result);
return mapping.findForward("hello-ok");
}
}
到些,所有的工作已完成,部署WEB工程,启动Tomcat
10.在IE中输入:http://localhost:8888/wss/ws/helloWorld.jsp
点击提交:
恭喜你,你的工作得到了回报~~~~~~~~~~~~~~~~~~~~~~~~~~
最后是过滤器类了,我用的全是UTF-8,内容如下:
package org.ymcn.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
public class CharacterEncoding implements Filter
{
protected String encoding;
protected FilterConfig filterConfig;
public void init(FilterConfig filterConfig) throws ServletException
{
this.filterConfig = filterConfig;
this.encoding = "utf-8";
}
public void destroy( )
{
this.encoding = null;
this.filterConfig = null;
}
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException
{
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}
protected String selectEncoding(ServletRequest request)
{
return (this.encoding);
}
}
好的,所有工作做完了
发表评论
-
解决(CXF):The security token could not be authenticated or authorized
2012-01-16 09:50 47391,使用cxf回调函数,服务端setPassword和客 ... -
CXF 入门:创建一个基于WS-Security标准的安全验证(CXF回调函数使用,)
2012-01-15 00:37 9143注意:以下客户端调用代码中获取服务端ws实例,都是通过CXF ... -
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)
2012-01-12 18:23 18564CXF 入门:HelloWorld接口发布 CXF 入门: ... -
解决(CXF):SOAPFaultException: Fault occurred while processing
2012-01-04 17:23 22623javax.xml.ws.soap.SOAPFault ... -
CXF 入门: 远程接口调用
2012-01-02 17:15 7879本篇是接着:CXF 入门之接口发布写的,建议先看上篇 ... -
CXF 入门:HelloWorld接口发布
2012-01-02 16:31 6221第一步:在myeclipse中新建一个web项目名为myWs, ... -
使用XFire+Spring构建Web Service
2011-12-01 12:01 1704FROM: http://shuangjianyu.blog. ... -
Apache Axis配置文件WSDD详解
2011-11-30 12:37 26147FROM: http://apps.hi.baidu.co ... -
(Axis 入门) 超简单webservice实例
2011-11-30 11:21 2092From: http://user.qzone.qq.com/ ... -
解决:nor any of its super class is known to this context.
2011-10-26 13:38 17842可以参考http://blog.csdn.net/chen_y ... -
WebService CXF学习(进阶篇3):CXF整合Spring框架 .
2011-10-26 13:28 79转载于:http://blog.csdn.net/chen ... -
WebService CXF学习 自定义对象传递(简单JavaBean对象) ..
2011-10-26 13:25 91这一节我们就CXF框架简单的JavaBean对象传递进行讲解。 ... -
WebService处理复杂对象List Map(jdk api jws)
2011-10-26 13:02 8669XFire不用这么做,Apache CXF 只需要指定集合中具 ... -
解决: is not found. Have you run APT to generate them?
2011-10-25 13:15 31678WSSERVLET11: failed to parse ru ... -
WebServices CXF开发常见异常及解决方法
2011-10-25 13:08 3516转载于:http://apps.hi.baidu.com/ ... -
解决:java.util.List does not have a no-arg default constructor.
2011-10-25 13:05 3018详见:http://learning.iteye.com/ad ... -
解决: counts of IllegalAnnotationExceptions and JAXB can't handle interfaces.
2011-10-25 13:02 21878、Caused by: com.sun.xml.bind.v2 ...
相关推荐
使用XFire+Spring构建Web Service使用XFire+Spring构建Web Service使用XFire+Spring构建Web Service使用XFire+Spring构建Web Service使用XFire+Spring构建Web Service使用XFire+Spring构建Web Service
使用XFire+Spring使用XFire+Spring构建Web Service(二).doc构建使用XFire+Spring构建Web Service(二).docWeb Service(二).doc
使用XFire+Spring构建Web Service步骤以及源代码.rar
使用XFire+Spring构建Web Service步骤 java
1 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等; 2 使用Stax解释XML,性能有了质的提高。XFire采用Woodstox 作Stax实现; 3 容易上手,可以方便快速地从pojo发布服务; 4 支持...
xfire+spring+安全认证,包含服务端和客户端,xfire jar包可以从我的资源下面下或网上很多。
xfire+spring+webservice+client xfire+spring+webservice+client xfire+spring+webservice+client
xfire+spring开发webservice 很不错的文档
xfire+spring+webservice xfire+spring+webservice xfire+spring+webservice xfire+spring+webservice
NULL 博文链接:https://chengwang.iteye.com/blog/623428
使用XFire+Spring构建Web Service.doc 该文章讲解了整个的配置流程,按照该流程可以完成框架搭建。该文章是转载其他人的,因为没有积分,所以不得以而为之。惭愧。