最近学习cxf,做个例子玩一下
服务端
一、首先创建一个动态Web Project
所有jar包如下图所示:
二、接口类
package org.cxf.spring.server;
import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService public interface IHelloWorld { @WebResult(name = "out") public String execute(@WebParam(name = "name") String name); public void m2(String parm); }
三、实现类
package org.cxf.spring.server.impl;
import javax.jws.WebService; import org.cxf.spring.server.IHelloWorld; import org.springframework.stereotype.Service; @Service("hw") @WebService(endpointInterface = "org.cxf.spring.server.IHelloWorld", serviceName = "HelloWorld") public class HelloWorld implements IHelloWorld { /* * (non-Javadoc) * * @see org.cxf.spring.server.IHelloWorld#execute(java.lang.String) */ @Override public String execute(String name) { // TODO Auto-generated method stub System.out.println("您好! " + name); return "您好!欢迎 【" + name + "】访问CXFSpring3.0WebService..."; } /* (non-Javadoc) * @see org.cxf.spring.server.IHelloWorld#m2(java.lang.String) */ @Override public void m2(String parm) { // TODO Auto-generated method stub } }
四、配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>CXFSpring3.0WebService</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:application.xml</param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>cxf</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>cxf</servlet-name> <url-pattern>/services/*</url-pattern> </servlet-mapping> </web-app>
五、application.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:xsd="http://www.w3.org/2001/XMLSchema" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <context:component-scan base-package="org.cxf.spring" /> <jaxws:endpoint id="webHelloWorld" implementor="#hw" address="/execute" publish="true"> </jaxws:endpoint> </beans>
六、服务端完成,最终项目结构图如下:
客户端
一、同样新建一个动态web project
jar包同服务端一样
二、创建服务类接口
package org.cxf.spring.server;
import javax.jws.WebParam; import javax.jws.WebResult; import javax.jws.WebService; @WebService public interface IHelloWorld { @WebResult(name = "out") public String execute(@WebParam(name = "name") String name); }
三、web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <display-name>CXFSpring3.0WebServiceClient</display-name> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> </welcome-file-list> <servlet> <servlet-name>webServiceClient</servlet-name> <servlet-class>org.cxf.spring.servlet.WebServiceClient</servlet-class> </servlet> <servlet-mapping> <servlet-name>webServiceClient</servlet-name> <url-pattern>/webServiceClient</url-pattern> </servlet-mapping> </web-app>
四、application.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:xsd="http://www.w3.org/2001/XMLSchema" xmlns:context="http://www.springframework.org/schema/context" xmlns:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <bean id="hw" class="org.cxf.spring.server.IHelloWorld" factory-bean="clientFactory" factory-method="create" /> <bean id="clientFactory" class="org.apache.cxf.jaxws.JaxWsProxyFactoryBean"> <property name="serviceClass" value="org.cxf.spring.server.IHelloWorld" /> <property name="address" value="http://localhost:8080/CXFSpring3.0WebService/services/execute?wsdl" /> </bean> </beans>
五、建一个servlet,以便测试
package org.cxf.spring.servlet;
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.cxf.spring.server.IHelloWorld; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; /** * Servlet implementation class WebServiceClient */ @WebServlet("/WebServiceClient") public class WebServiceClient extends HttpServlet { private static final long serialVersionUID = 1L; /** * @see HttpServlet#HttpServlet() */ public WebServiceClient() { super(); // TODO Auto-generated constructor stub } /** * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse * response) */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub System.out.println("this is CXFSpringServiceClient servlet..."); ApplicationContext ctx = new ClassPathXmlApplicationContext("config/application.xml"); IHelloWorld hw = (IHelloWorld) ctx.getBean("hw"); String result = hw.execute("Mr CXF"); System.out.println(result); } /** * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse * response) */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub doGet(request, response); } }
七、客户端结构图
八、测试
相关推荐
在这个示例项目中,"Hello"可能是表示一个简单的Hello World服务,用于展示CXF、Struts和Spring的集成效果。开发者可以通过这个例子学习如何在实际项目中组合这三个强大的框架,以构建出高效、可维护的Web服务应用。
在本教程中,我们将深入探讨如何使用Apache CXF 3.0与Spring 3.2框架构建一个简单的"Hello World" Web服务实例。这个过程涵盖了关键的技术组件、配置步骤以及可能遇到的问题解决策略。 首先,Apache CXF是一个开源...
【描述】"cxf+spring+tomcat 只是演示,一个helloWorld的例子"说明我们将通过一个基础的"Hello, World!"程序来了解这个集成环境的工作原理。在Web服务领域,"Hello, World!"通常是一个开始,帮助开发者理解如何创建...
IHelloWorld client = new ClientProxyFactoryBean().create(IHelloWorld.class, "http://localhost:8080/cxfserver/HelloWorld"); String response = client.sayHello("World"); assertEquals("Hello World", ...
在本文中,我们将深入探讨如何使用Apache CXF 2与Spring 2.5框架来开发Web服务实例。Apache CXF是一个流行的开源项目,它提供了一种简单且强大的方式来实现和消费SOAP和RESTful Web服务。Spring框架则以其模块化、...
<property name="address" value="http://localhost:8080/helloworld"/> ``` 配置完成后,只需启动Spring应用,CXF就会自动发布Web服务。消费者可以通过生成的WSDL文件创建客户端代理,或者直接通过HTTP请求...
本篇文章将围绕“基于Spring 3.0的CXF发布Web Service及客户端”的主题展开,详细介绍如何利用这两个强大的工具来实现服务的发布和调用。 首先,我们需要理解Spring 3.0的关键特性。Spring 3.0引入了更多的模块和...
2.HelloWorld 3.WSDL描述 WebService CXF学习——进阶篇 1.SOAP讲解 2.JAX-WS讲解 3.对象传递 WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security ...
【描述】"cxf写的一个helloworld demo" 指出,此项目的核心是展示如何通过Apache CXF框架实现基础功能。"Hello World"程序通常被用作教学工具,帮助开发者理解新语言或框架的基本工作原理。在这个特定的场景中,我们...
**WebService (一) CXF 入门 HelloWorld** 在IT行业中,WebService是一种基于开放标准(如XML、WSDL和SOAP)的互联网通信协议,允许不同系统之间的应用程序进行互操作。本篇将详细介绍如何使用Apache CXF框架来创建...
spring + cxf + restful + soap 方便初学者很快上手。 注解描述 @Path注解的值是一个相对的URI路径,这个路径指定了该Java类的位置,例如/helloworld。在这个URI中可以包含变量,例如可以获取用户的姓名然后作为参数...
本项目结合了三个关键组件:Web服务(WebService)、Spring框架和XFire,以实现高效、灵活的服务创建和调用。 **Web服务(WebService)**: Web服务是一种基于互联网的应用程序接口,它使用XML(可扩展标记语言)...
【WebService版集成Spring的HelloWorld】是一个典型的教程,旨在帮助开发者了解如何在Spring框架中集成和使用WebService技术。在这个教程中,我们将深入探讨以下几个关键知识点: 1. **WebService概述**: ...
在本文中,我们将深入探讨如何将Apache CXF与Spring框架集成,以便同时支持JSON和XML的Web...这个“CXF整合spring同时支持JSON和XML配置的HelloWorld”示例为开发者提供了一个基础,从中可以扩展出复杂的企业级服务。
本教程将深入探讨如何在Spring环境中集成CXF以实现RESTful WebService接口。 首先,我们需要理解REST(Representational State Transfer)的概念。REST是一种软件架构风格,用于设计网络应用程序。它的核心思想是...
@WebService(endpointInterface = "com.example.HelloWorld") public class HelloWorldImpl implements HelloWorld { @Override public String sayHello(String name) { return "Hello, " + name + "!"; } } ```...
<cxf:service id="helloWorldService" serviceClass="com.example.HelloWorld" bus="cxf"> <cxf:endpoint address="/hello" /> </cxf:service> ``` 这里定义了一个名为"helloWorldService"的服务,并指定了...
【CXF实用案例:HelloWorld详解】 Apache CXF是一个开源的Java框架,它主要用于构建和服务导向架构(SOA)的应用程序。CXF使得开发者能够轻松地创建和部署Web服务,同时也支持SOAP、RESTful API等多种通信协议。在...
**JAX-WS + Spring 实现Web Service示例** 在现代企业级应用开发中,Web Service作为一种跨平台、跨语言的通信方式,被广泛用于不同系统间的交互。本示例将详细阐述如何利用Java API for XML Web Services (JAX-WS)...
在IT行业中,RESTful WebService已经成为构建Web应用程序接口的标准之一,它强调资源的表述状态转移。CXF是一个开源服务框架,允许开发人员创建和消费Web服务。Spring框架则是Java领域中广泛使用的轻量级框架,提供...