- 浏览: 1225392 次
- 性别:
- 来自: 广州
博客专栏
-
Apache CXF使用s...
浏览量:111303
文章分类
- 全部博客 (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 48191,使用cxf回调函数,服务端setPassword和客 ... -
CXF 入门:创建一个基于WS-Security标准的安全验证(CXF回调函数使用,)
2012-01-15 00:37 9194注意:以下客户端调用代码中获取服务端ws实例,都是通过CXF ... -
CXF 入门:创建一个基于SOAPHeader的安全验证(CXF拦截器使用)
2012-01-12 18:23 18789CXF 入门:HelloWorld接口发布 CXF 入门: ... -
解决(CXF):SOAPFaultException: Fault occurred while processing
2012-01-04 17:23 22766javax.xml.ws.soap.SOAPFault ... -
CXF 入门: 远程接口调用
2012-01-02 17:15 7952本篇是接着:CXF 入门之接口发布写的,建议先看上篇 ... -
CXF 入门:HelloWorld接口发布
2012-01-02 16:31 6276第一步:在myeclipse中新建一个web项目名为myWs, ... -
使用XFire+Spring构建Web Service
2011-12-01 12:01 1751FROM: http://shuangjianyu.blog. ... -
Apache Axis配置文件WSDD详解
2011-11-30 12:37 26237FROM: http://apps.hi.baidu.co ... -
(Axis 入门) 超简单webservice实例
2011-11-30 11:21 2132From: http://user.qzone.qq.com/ ... -
解决:nor any of its super class is known to this context.
2011-10-26 13:38 17930可以参考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 8740XFire不用这么做,Apache CXF 只需要指定集合中具 ... -
解决: is not found. Have you run APT to generate them?
2011-10-25 13:15 31746WSSERVLET11: failed to parse ru ... -
WebServices CXF开发常见异常及解决方法
2011-10-25 13:08 3572转载于:http://apps.hi.baidu.com/ ... -
解决:java.util.List does not have a no-arg default constructor.
2011-10-25 13:05 3085详见:http://learning.iteye.com/ad ... -
解决: counts of IllegalAnnotationExceptions and JAXB can't handle interfaces.
2011-10-25 13:02 22227、Caused by: com.sun.xml.bind.v2 ...
相关推荐
【整合XFire与Spring进行Web Service开发】 XFire是一个基于Java的SOAP Web Service框架,而Spring是一个广泛应用的轻量级框架,它提供了依赖注入、面向切面编程等特性。将两者集成可以方便地构建和消费Web Service...
"spring3+hibernate4+struts2+maven全注解整合"的主题意味着将这四个组件通过注解的方式进行集成,以构建一个高效且易于维护的Web应用。 Spring是企业级Java应用程序的核心框架,它提供了依赖注入(DI)和面向切面...
本文将详细介绍如何使用MyEclipse10和Xfire来构建Web服务。 一、MyEclipse10简介 MyEclipse10是基于Eclipse的商业级Java开发平台,支持多种技术栈,包括Java EE、Spring、Struts等。其强大的功能包括代码编辑、调试...
《MyEclipse实战开发讲解入门XFire.Web.Service.入门》 在IT行业中,MyEclipse作为一款强大的Java集成开发环境,被广泛应用于企业级应用的开发。本资源包旨在为初学者提供一个全面的MyEclipse实战开发指南,特别是...
SSH(Struts+Spring+Hibernate)是一个常见的Java Web开发框架,用于构建高效、可扩展的企业级应用程序。在SSH框架下实现Web服务(WebService),我们可以使用XFire库,它是一个...祝你在构建Web服务的道路上一切顺利!
Java XFire Web服务实例 Java XFire 是一个开源框架,它允许开发人员快速、轻松地创建和消费Web服务。在Java世界中,Web服务...通过深入学习和实践,你可以掌握Web服务的核心概念,并利用XFire构建自己的分布式系统。
通过简单的XML配置或者编程式API,可以将XFire集成到Spring、Struts等主流Java应用框架中,实现Web服务的快速开发。 总结,XFire 1.2.6是一个强大而灵活的Web服务开发工具,尤其适合那些希望避免复杂Web服务框架的...
**Struts2** 是一个基于MVC(Model-View-Controller)设计模式的开源框架,主要用于构建Web应用程序。它提供了一种强大的、可扩展的架构,简化了开发过程,降低了代码的复杂性。Struts2的核心是Action类,它是业务...
6. **与其他框架集成**:XFire可以很好地与Spring、Struts等流行框架集成,便于构建完整的Web应用。 然而,随着技术的发展,XFire已被Apache CXF所取代,后者继承了XFire的优点,并增加了更多的功能和改进。Apache ...
8. **第十五章 开发XFire Web Service应用**:XFire是早期的Web服务框架,后来被Apache CXF吸收。这章可能涉及如何在MyEclipse中创建和发布Web服务,以及消费外部Web服务。 9. **第十六章 开发 EJB 应用**:...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
6.8.1. 在Spring中使用AspectJ进行domain object的依赖注入 6.8.2. Spring中其他的AspectJ切面 6.8.3. 使用Spring IoC来配置AspectJ的切面 6.8.4. 在Spring应用中使用AspectJ加载时织入(LTW) 6.9. 更多资源 7...
最后,"第十五章 开发XFire Web Service应用.pdf"介绍了XFire,这是一个早期的Web服务框架,现在已被Apache CXF所取代。这部分内容将教读者如何在MyEclipse 6中创建和消费Web服务,利用XML和SOAP协议进行分布式系统...
本笔记将探讨CXF的基本概念、如何使用CXF构建Webservice以及与之相关的技术栈,如Spring、Struts2等。 1. **CXF简介** - CXF(CXF Xfire + XWS)是两个项目的合并,提供了SOAP、RESTful、XML/HTTP、WS-*等协议的...
2. **Struts 2框架**:Struts 2是MVC模式的经典实现,用于构建Web应用程序。它提供了丰富的动作和结果类型,支持拦截器,能与多种视图技术配合。第十二章同样探讨了Struts 2的使用,并结合Spring展示了它们的协同...
在这里,你将学习到如何使用MyEclipse 6来创建、测试和发布Web服务,理解服务接口和服务实现的原理。 第四,第十三章介绍了JPA(Java Persistence API),这是Java标准的ORM规范,旨在提供统一的持久层框架。通过...
本章将介绍如何在MyEclipse中使用XFire创建和部署Web服务,以及如何进行客户端调用和服务测试。 7. **第17章 - MyEclipse.UML.建模**:MyEclipse不仅仅是一个Java开发工具,还支持UML建模,可以帮助开发者设计和...
8. **第十五章 开发XFire Web Service应用**:XFire(后来演变为Apache CXF)是一个Web服务框架,允许开发者创建和消费Web服务。章节内容将涉及在MyEclipse中创建、发布和测试Web服务的流程。 9. **第十七章 ...
6. **开发XFire Web Service应用**:XFire是早期的Web服务实现,提供了SOAP和RESTful服务的开发支持。在这一章中,读者将学习如何使用XFire创建、发布和调用Web服务,理解Web服务的基础概念。 7. **图形界面开发-...
这一章将引导读者理解Web服务的概念,掌握在MyEclipse 6中使用XFire创建和发布Web服务,以及如何进行服务调用和测试。 第十六章:开发EJB应用 Enterprise JavaBeans (EJB) 是Java EE的核心组件之一,用于构建分布式...