`
zaife
  • 浏览: 41303 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

cxf+spring+struts2的helloWorld

    博客分类:
  • cxf
阅读更多

参照Cxf官方的例子,用Cxf+spring+struts2写了一个helloWorld的例子

首先安装cxf的eclipse插件,文档参考:incubator.apache.org/cxf/setting-up-eclipse.html

Service代码:

HelloWorld
  1. package com.zaife.cxfspring;   
  2.   
  3.   
  4. import javax.jws.WebService;   
  5.   
  6. @WebService  
  7. public interface HelloWorld {   
  8.     String sayHi(String text);   
  9. }  
HelloWorldImpl
  1. package com.zaife.cxfspring;   
  2.   
  3. import javax.jws.WebService;   
  4.   
  5. @WebService(endpointInterface = "com.zaife.cxfspring.HelloWorld")   
  6. public class HelloWorldImpl implements HelloWorld {   
  7.   
  8.     public String sayHi(String text) {   
  9.         return "Hello " + text;   
  10.     }   
  11. }  

 

java 代码
  1. package com.zaife.struts2;   
  2.   
  3. import com.opensymphony.xwork2.Action;   
  4. import com.opensymphony.xwork2.ActionSupport;   
  5. import com.zaife.cxfspring.HelloWorld;   
  6.   
  7. public class CallCxfService extends ActionSupport {   
  8.        
  9.     private HelloWorld client;   
  10.        
  11.     private String message;   
  12.   
  13.     public void setClient(HelloWorld client) {   
  14.         this.client = client;   
  15.     }   
  16.        
  17.     public String execute() {   
  18.         this.message = this.client.sayHi("dd");   
  19.         return Action.SUCCESS;   
  20.     }   
  21.   
  22.     public String getMessage() {   
  23.         return message;   
  24.     }   
  25.   
  26.     public void setMessage(String message) {   
  27.         this.message = message;   
  28.     }      
  29. }  

Spring配置文件

  1. <beans xmlns="http://www.springframework.org/schema/beans"  
  2.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  3.     xmlns:jaxws="http://cxf.apache.org/jaxws"  
  4.     xsi:schemaLocation="   
  5. http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd   
  6. http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">  
  7.   
  8.     <import resource="classpath:META-INF/cxf/cxf.xml" />  
  9.     <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />  
  10.     <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  
  11.   
  12.     <jaxws:endpoint    
  13.       id="helloWorld"    
  14.       implementor="com.zaife.cxfspring.HelloWorldImpl"    
  15.       address="/HelloWorld" />  
  16.          
  17.          
  18.   
  19.     <bean id="client" class="com.zaife.cxfspring.HelloWorld"    
  20.       factory-bean="clientFactory" factory-method="create"/>  
  21.        
  22.     <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean">  
  23.       <property name="serviceClass" value="com.zaife.cxfspring.HelloWorld"/>  
  24.       <property name="address" value="http://localhost:8080/cxf-spring/test/HelloWorld"/>  
  25.     bean>  
  26.        
  27.     <bean id="callCxfService" class="com.zaife.struts2.CallCxfService">  
  28.         <property name="client" ref="client" />  
  29.     bean>  
  30.          
  31. beans>  

Struts配置文件

  1. <!---->xml version="1.0" encoding="UTF-8" ?>  
  2. <!---->
  3.     "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"   
  4.     "http://struts.apache.org/dtds/struts-2.0.dtd">  
  5. <struts>  
  6.     <constant name="struts.objectFactory" value="spring" />  
  7.     <constant name="struts.devMode" value="true" />  
  8.   
  9.     <package name="cxf-spring" extends="struts-default">  
  10.   
  11.         <action name="hello" method="execute" class="callCxfService">  
  12.             <result>/index.jspresult>  
  13.                
  14.         action>                
  15.     package>  
  16.   
  17. struts>  

web.xml配置

xml 代码
  1. <!---->xml version="1.0" encoding="UTF-8"?>  
  2. <web-app version="2.4"    
  3.     xmlns="http://java.sun.com/xml/ns/j2ee"    
  4.     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    
  5.     xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee    
  6.     http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">  
  7.                      <!---->  
  8.     <servlet>  
  9.         <display-name>CXF Servletdisplay-name>  
  10.         <servlet-name>CXFServletservlet-name>  
  11.         <servlet-class>  
  12.             org.apache.cxf.transport.servlet.CXFServlet   
  13.         servlet-class>  
  14.         <load-on-startup>1load-on-startup>  
  15.     servlet>  
  16.   
  17.     <servlet-mapping>  
  18.         <servlet-name>CXFServletservlet-name>  
  19.         <url-pattern>/test/*url-pattern>  
  20.     servlet-mapping>     
  21.     <!---->     
  22.     <filter>  
  23.         <filter-name>struts2filter-name>  
  24.         <filter-class>  
  25.             org.apache.struts2.dispatcher.FilterDispatcher   
  26.         filter-class>  
  27.     filter>  
  28.   
  29.     <filter-mapping>  
  30.         <filter-name>struts2filter-name>  
  31.         <url-pattern>/*url-pattern>  
  32.     filter-mapping>      
  33.     <context-param>  
  34.         <param-name>contextConfigLocationparam-name>  
  35.         <param-value>WEB-INF/hello.xmlparam-value>  
  36.     context-param>  
  37.   
  38.     <listener>  
  39.         <listener-class>  
  40.             org.springframework.web.context.ContextLoaderListener   
  41.         listener-class>  
  42.     listener>  
  43.   
  44.   
  45.   <welcome-file-list>  
  46.     <welcome-file>index.jspwelcome-file>  
  47.   welcome-file-list>  
  48. web-app>  

Jsp页面

  1. <%@ page language="java"  pageEncoding="ISO-8859-1"%>  
  2. <%@ taglib prefix="s" uri="/struts-tags" %>  
  3. <!---->>  
  4. <html>  
  5.   <head>       
  6.     <title>My JSP 'index.jsp' starting pagetitle>  
  7.     <!---->  
  8.   head>  
  9.      
  10.   <body>  
  11.     <s:property value="message" /><br>  
  12.   body>  
  13. html>  
分享到:
评论
7 楼 lycmlove 2008-09-22  
Cxf2.08+spring2+struts2下可以跑通。
6 楼 samwalt 2008-07-30  
最后在浏览器里运行:http://localhost:8080/HelloWorld/hello.action
出现下面的错误:
description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Could not send Message.
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)


root cause

javax.xml.ws.soap.SOAPFaultException: Could not send Message.
org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:199)
$Proxy33.sayHi(Unknown Source)
com.zaife.struts2.CallCxfService.execute(CallCxfService.java:13)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)

......
这个
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:515)
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419

碰到好几次了,一直都没有解决,是什么问题啊?
5 楼 samwalt 2008-07-30  
hanqiaorui 写道
qianlei007 写道
    <import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  


这几个文件,那里去找??

这3个文件在cxf-2.1.1.jar里面。你可以找找看。


还需要cxf的哪些jar包放在WEB-INF/lib路径下?
4 楼 hanqiaorui 2008-07-28  
qianlei007 写道
    <import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  


这几个文件,那里去找??

这3个文件在cxf-2.1.1.jar里面。你可以找找看。
3 楼 qianlei007 2008-06-26  
    <import resource="classpath:META-INF/cxf/cxf.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> 
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml" />  


这几个文件,那里去找??
2 楼 zzuizui 2008-04-08  
好文章,把CXF应用Struts2+Spring框架的快速上手文档!Eclipse3.3下可以跑通。
1 楼 allenBen 2007-12-20  
你就不能发完全了啊  学Apache全部发些半吊子例子 靠
com.zaife.struts2.CallCxfService呢?

相关推荐

    CXF2.1.3+spring3.0+struts2.3.4

    【标签】"CXF+spring WebService CXF"强调了这些组件的集成,特别是CXF作为Web服务的主要提供者,以及与Spring的紧密配合。CXF不仅可以用作服务提供者,还可以作为客户端来消费其他服务,这在Spring的管理下变得更加...

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar

    简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar简单的webservice+Cxf+Spring数据对接实例以及jar.rar...

    CXF2.6+SPRING3.0+STRUTS2.3例子含Jar包

    在IT行业中,CXF、Spring和Struts2是三个非常重要的开源框架,分别用于Web服务、依赖注入和MVC架构。下面将详细讲解这三个框架以及它们的整合。 **CXF (Camel eXtensible Framework)** 是一个开源的Java服务框架,...

    cxf+spring+client

    在这个"**cxf+spring+client**"的主题中,我们将深入探讨CXF与Spring框架结合创建客户端服务的细节,以及如何利用Spring MVC来增强应用程序的交互性。 首先,让我们关注CXF。CXF允许开发者使用Java编程语言来定义和...

    CXF+SPRING例子

    【CXF+SPRING例子】是一个关于如何将Apache CXF与Spring框架整合的示例项目。Apache CXF是一个开源服务框架,它允许开发者创建和消费Web服务,而Spring框架则是Java应用开发的强大支撑,提供了依赖注入、AOP(面向切...

    cxf+spring实现webservice

    以上是CXF+Spring实现Web Service的基本流程和关键知识点。实际应用中,还需要根据具体的需求和环境进行适当的调整和扩展。例如,如果涉及到大型分布式系统,可能还需要考虑服务治理、负载均衡等问题。通过熟练掌握...

    cxf+spring+tomcat

    【描述】"cxf+spring+tomcat 只是演示,一个helloWorld的例子"说明我们将通过一个基础的"Hello, World!"程序来了解这个集成环境的工作原理。在Web服务领域,"Hello, World!"通常是一个开始,帮助开发者理解如何创建...

    cxf+spring webservice demo client

    【标题】:“cxf+spring webservice demo client” 在IT领域,Web服务是一种常见的系统间交互方式,它允许不同应用程序之间共享数据和服务。本示例是关于如何使用Apache CXF和Spring框架创建一个Web服务客户端的...

    cxf+spring整合

    "CXF+Spring整合"是企业级Java应用程序中常用的一种技术组合,它结合了Apache CXF(一个用于构建和服务导向架构的开源框架)和Spring框架的优势,以实现高效、灵活的服务开发和管理。在Java世界里,CXF常用于创建Web...

    cxf+spring 完全整合

    代码是我一行行敲的,直接部署就能用,service,client端实现了:(cxf用的是3.0最新的) 1维数组, 2维数组, 3维数组, List, List , Map(adapter方式实现的), 直接返回bean, 返回object[], 做了header的安全认证校验.

    cxf+spring使用经验

    【cxf+spring 使用经验】 Apache CXF 是一个开源的 Web 服务框架,它整合了 Celtix 和 XFire 两大项目的优势,提供了全面的 JAX-WS 支持,允许开发者通过 Code First 或 WSDL First 的方式来创建和消费 Web 服务。...

    WebService CXF+struts+spring 示例

    在这个示例项目中,"Hello"可能是表示一个简单的Hello World服务,用于展示CXF、Struts和Spring的集成效果。开发者可以通过这个例子学习如何在实际项目中组合这三个强大的框架,以构建出高效、可维护的Web服务应用。

    cxf+spring开发webservice实例(java)

    web项目使用spring和cxf的一个开发实例,有简单的代码样例和jar。是一个完整的项目,最终发布完成时访问 http://ip:port/项目名称/webservices/ 就会发现你发布的webservice服务。

    cxf+spring所需的jar包

    本压缩包“cxf+spring”包含了这两者结合开发所需的jar包,旨在为开发者提供一个快速搭建基于CXF和Spring环境的基础。 1. CXF框架详解: CXF(Code first eXtended Framework)是基于Java的Web服务开发工具,它...

    cxf+spring+web

    【标题】"cxf+spring+web"是一个基于Apache CXF和Spring框架构建的Web服务实现,用于创建和消费SOAP或RESTful服务。这个项目是一个基础的 HelloWorld 示例,展示了如何在Tomcat 6.0应用服务器上运行一个CXF Web服务...

    CXF+Spring 完整版例子

    【标题】"CXF+Spring 完整版例子"是一个示例项目,它演示了如何在Spring框架中集成Apache CXF来构建一个完整的Web服务应用。Apache CXF是一个开源服务框架,它允许开发者创建和消费各种不同类型的Web服务,包括SOAP...

    cxf+Spring2.5

    【标题】"cxf+Spring2.5" 指的是使用Apache CXF框架与Spring 2.5版本进行集成的示例项目。Apache CXF是一个开源服务框架,它允许开发人员创建和消费Web服务,而Spring框架则是一个广泛使用的Java企业级应用的IOC...

    cxf+spring的webservice实例

    总的来说,"cxf+spring的webservice实例"是一个实践性的教程,旨在帮助开发者理解如何在Spring环境中利用CXF快速构建和部署Web服务。通过这个实例,你可以掌握从创建服务到发布、测试的整个流程,进一步提升你的Java...

    cxf+spring webservice server demo

    【标题】"cxf+spring webservice server demo"是一个基于Apache CXF和Spring框架构建的Web服务服务器端示例项目。这个项目展示了如何将CXF与Spring集成,以创建、部署和运行一个高效的Web服务。 【描述】指出,由于...

    cxf+spring接口实例

    本教程将通过一个具体的"CXF+Spring接口实例"来探讨如何使用这两种技术实现Web服务并进行测试。 首先,让我们理解CXF的核心功能。CXF允许开发者使用Java编程语言来实现Web服务接口,这被称为Java API for RESTful ...

Global site tag (gtag.js) - Google Analytics