最近项目开发完毕,目前有闲于时间,所以抽空学习了一下,使用cxf开发WebService,废话不多说,直接上码!
背景介绍:
1.开发工具:eclipse
2.jar:cxf+spring,(cxf的包下集成了spring的包,很方便)
步骤如下:
1.创建web项目
2.引入jar,具体引入请查看图片
3.编写对外接口:
@WebService public interface ISayHello { public String sayHello(@WebParam(name="name")String name); }
4.编写接口实现:
@WebService(endpointInterface="com.dao.ISayHello") public class SayHelloImpl implements ISayHello { public String sayHello(String name) { // TODO Auto-generated method stub return "my name is"+name; } }
5.配置spring,创建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:jaxws="http://cxf.apache.org/jaxws" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.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" /> <bean id="sayHelloImpl" class="com.dao.impl.SayHelloImpl" /> <jaxws:endpoint id="sayHello" implementor="#sayHelloImpl" address="/sayHello" /> </beans>
6.配置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" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>webServiceDemo</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> /WEB-INF/config/applicationContext.xml </param-value> </context-param> <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> <servlet> <servlet-name>CXFServlet</servlet-name> <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>CXFServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
自此使用csf 开发webService 已经完毕。
下面我们使用spring注入的方式,编写一个简单客户端,模拟访问我们刚写的webservice.
步骤如下:
1.编写applicationContext_client.xml:
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:jaxws="http://cxf.apache.org/jaxws" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd"> <!-- 该方式访问ws服务也是利用spring的依赖注入法 id是spring IOC容器唯一标识符 serviceClass是webservices服务接口 address是服务wsdl地址 --> <jaxws:client id="sayHello2" serviceClass="com.dao.ISayHello" address="http://localhost:8080/webServiceDemo/sayHello?wsdl" /> </beans>
2.client:
public static void main(String[] args) { // TODO Auto-generated method stub ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( new String[] { "com/client/applicationContext_client.xml" }); ISayHello client = (ISayHello) context.getBean("sayHello2"); String response = client.sayHello("Joe"); System.out.println("Response: " + response); System.exit(0); }
3.运行即可,当然首先要启动 我们刚写的webservice服务,不然会提示连接失败!
相关推荐
例如,可以使用`@WebService`注解标记一个Java类为Web服务接口,并使用`@Path`注解来定义RESTful服务的URL路径。 4. **CXF服务部署**:CXF提供多种部署方式,包括独立服务器、Tomcat等应用服务器,以及Spring容器。...
Spring Boot + CXF 开发WebService Demo 详解 Spring Boot 和 Apache CXF 是两个非常流行的Java 框架,前者是一个基于 Spring 的框架,后者是一个提供了强大 web 服务支持的框架。本文将详细介绍如何使用 Spring ...
【标题】"mybatis+spring+cxf Webservice框架"是一个集成性的开发框架,它结合了三个主流的技术组件:MyBatis、Spring和Apache CXF,用于构建高效、灵活且易于维护的Web服务。MyBatis是一个优秀的持久层框架,Spring...
本篇文章将深入探讨如何使用CXF来搭建一个Web服务案例,这对于初学者来说是一次非常有价值的学习体验。 首先,让我们了解CXF的基本概念。CXF(Composite eXtensible Markup Language Framework)是基于Java的,它...
开发者可以使用CXF来生成和消费Web服务,简化开发流程。 5. **WebService**:WebService是一种基于XML和HTTP的分布式计算模型,允许不同的系统之间交换数据。在这个项目中,WebService提供了一个标准的接口,允许...
- Apache CXF是一个开源服务框架,由ObjectWeb Celtix和Codehaus XFire合并而成,提供了一种简单的方式来构建和开发WebService。 - CXF的核心组件是Bus,它类似于Spring的ApplicationContext,用于管理WebService...
WebService CXF,全称Apache CXF,是一款开源的Java框架,用于构建和开发Web服务。它支持多种协议和规范,包括SOAP、RESTful、XML以及Web服务标准如WS-*。在"WebService CXF --- 传输文件MTOM"这个主题中,我们将...
总的来说,Apache CXF为开发Web服务提供了一个强大且灵活的平台,无论是创建服务还是消费服务,都能提供良好的开发体验。通过理解这些概念并结合实际的代码示例,你将能够更好地利用CXF在你的IT项目中实现高效、互...
总结起来,SpringBoot结合cxf提供了方便的Web服务开发体验,而logback则为我们提供了强大的日志管理能力。通过这两个组件的集成,我们可以构建出既易于开发又具有良好日志监控的Web服务系统。对于初学者来说,理解并...
通过CXF,开发者可以使用Java编程模型直接定义服务接口和服务实现,而无需关心底层通信细节。 Interceptor(拦截器)是Spring MVC和CXF中的一个重要概念,它们允许我们在方法调用前后插入自定义逻辑,例如日志记录...
在描述中提到的"直接运行即可"意味着这个项目可能包含了CXF WebService的客户端和服务端示例代码,用户只需要运行即可体验到CXF的功能。这通常涉及到创建一个服务接口,实现该接口,然后使用CXF的工具或注解将其暴露...
Java分页算法是Java开发中常见的一种技术,用于在大量数据中实现高效的浏览体验,尤其在Web应用中,用户通常需要浏览成百上千条记录,而一次性加载所有数据会导致性能下降,用户体验也会变得糟糕。因此,分页成为了...
Apache CXF是一个流行的开源框架,它允许开发人员创建和使用Web服务,支持多种协议和标准,如SOAP、RESTful、JAX-RS和JAX-WS等。 首先,让我们理解什么是Apache CXF。CXF源于两个项目:XFire和 Celtix,这两个项目...
2. **服务端之spring配置**:在"CXF&spring初体验【服务端之spring配置文件】"中,我们会学习如何使用Spring的XML配置文件或Java配置来声明和管理CXF服务。这通常包括定义服务接口、实现类、以及服务的发布和地址...
Apache CXF是一个开源的Java框架,它主要用于构建和开发服务导向架构(SOA)和Web服务。这个资源包包含了CXF 2.4.10版本的...通过这个2.4.10版本的资源包,你可以开始你的Web服务探索之旅,体验CXF带来的高效和便捷。
5. **错误处理**:Spring和CXF的集成还允许开发者定义自定义的异常处理器,将CXF抛出的异常转换为业务友好的错误信息,提高系统的健壮性和用户体验。 6. **测试支持**:在Spring测试框架的支持下,可以方便地对CXF...
以下是关于“WebService 7本书”中可能涵盖的一些核心知识点,以及与AJAX、CXF、RESTful和WS相关的应用知识: 1. **WebService基础**:Web服务基于开放标准,如XML(可扩展标记语言)用于数据表示,WSDL(Web服务...
CXF 实现了 JAX-RS,允许开发者使用注解来定义资源类和方法,简化 RESTful 服务的开发。 6. **客户端调用**: 客户端通过发送 HTTP 请求(GET、POST、PUT、DELETE 等)调用 Web 服务。对于 SOAP 服务,客户端可能...
4. **使用CXF开发Web服务**: - 首先,你需要在项目中引入CXF的依赖,这可以通过Maven或Gradle完成。 - 创建服务接口和实现,使用`@WebService`和`@Path`注解来标记服务接口和资源类。 - 配置CXF的服务器端点,...