`
worina8080
  • 浏览: 14911 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

基于CXF的webservice开发

阅读更多
      webservice是一个技术,但确切的说是一个标准。而不同的语言对webservice有不同的实现框架。这里谈谈java的Apache CXF实现框架,java除了CXF,还有aixs等。
      首先是将CXF下载下来,下载网站是:http://cxf.apache.org/,解压,然后就是开发,开发是基于spring项目的基础之上。
      首先是将架包导入项目中,因为我构建的是maven项目,所以在pom.xml添加一下代码即可
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-api</artifactId>
			<version>2.3.3</version>
			<type>jar</type>
			<scope>compile</scope>
		</dependency>
  		<dependency>
	  		<groupId>apache-httpclient</groupId>
	  		<artifactId>commons-httpclient</artifactId>
	  		<version>3.1</version>
  		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxws</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-frontend-jaxrs</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-http</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-bindings-soap</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-bindings-http</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-common-utilities</artifactId>
			<version>2.3.3</version>
		</dependency>
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-testutils</artifactId>
			<version>2.3.3</version>
			<scope>test</scope>
		</dependency>
		<!-- Jetty is needed if you're are not using the CXFServlet -->
		<dependency>
			<groupId>org.apache.cxf</groupId>
			<artifactId>cxf-rt-transports-http-jetty</artifactId>
			<version>2.3.3</version>
			<scope>provided</scope>
		</dependency>

     架包导完了,接下来就是编码,编写要构发布的接口:Login.java
package com.webservice.cxf.worina.service;


public interface Login {
	public String add(String name);
}

LoginImpl.java
package com.webservice.cxf.worina.service.impl;

import com.webservice.cxf.worina.service.Login;

public class LoginImpl implements Login {

	public String add(String name) {
		return "hello " +name;
	}
}

接口和实现类都写完了,接下来是配置文件
新建一个applicationContext-ws.xml
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xmlns:cxf="http://cxf.apache.org/core"
	xmlns:jaxws="http://cxf.apache.org/jaxws"
	xmlns:jaxrs="http://cxf.apache.org/jaxrs"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"
default-autowire="byName">
        <!-- 以下三个文件为CXF架包自带的,只要引入即可以 -->
	<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" />
	
	<jaxws:endpoint id="loginImpl" implementor="#login" address="/login"></jaxws:endpoint>
	<bean id="login" class="com.webservice.cxf.worina.service.impl.LoginImpl" />
</beans>

到这为止,还有一步很重要的,就是在web.xml配置CXF
<!-- 项目启动的时候启动CXF的servlet -->
<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> 

基本的代码已经有了,然后就是启动项目,浏览器中访问
http://localhost:9999/yourProjectName/login?wsdl
如果出现下面页面,那就说明成功了
<wsdl:definitions xmlns:ns1="http://service.worina.cxf.webservice.com/" xmlns:ns2="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://impl.service.worina.cxf.webservice.com/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="LoginImplService" targetNamespace="http://impl.service.worina.cxf.webservice.com/">
<wsdl:import location="http://localhost:9999/login?wsdl=Login.wsdl" namespace="http://service.worina.cxf.webservice.com/"></wsdl:import>
<wsdl:binding name="LoginImplServiceSoapBinding" type="ns1:Login">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="add">
<soap:operation soapAction="" style="document"/>
<wsdl:input name="add">
<soap:body use="literal"/>
</wsdl:input>
<wsdl:output name="addResponse">
<soap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="LoginImplService">
<wsdl:port binding="tns:LoginImplServiceSoapBinding" name="LoginImplPort">
<soap:address location="http://localhost:9999/youProjectName/login"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>


使用客户端调用
	public static void main(String[] args) {
		JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
		factory.setAddress("http://localhost:9999/login?wsdl");		
		factory.setServiceClass(Login.class);
		Login login =(Login) factory.create();
		System.out.println(login.add("XXX "));
	}

调用成功的话即发布成功!
分享到:
评论

相关推荐

    webService(基于cxf)的完整例子

    总结来说,基于CXF的Web服务示例提供了一个完整的流程,从创建服务接口、实现服务逻辑、配置服务到测试服务,涵盖了Web服务开发的各个方面。通过学习这个例子,开发者可以掌握CXF的基本使用方法,进一步拓展到更复杂...

    mybatis+spring+cxf Webservice框架

    【标题】"mybatis+spring+cxf Webservice框架"是一个集成性的开发框架,它结合了三个主流的技术组件:MyBatis、Spring和Apache CXF,用于构建高效、灵活且易于维护的Web服务。MyBatis是一个优秀的持久层框架,Spring...

    基于CXF实现WebService开发.pdf

    基于CXF开发WebService时,开发者可以采用不同的前端API,如JAX-WS或CXF提供的简单前端。Apache CXF支持多种传输协议和服务绑定,包括SOAP/HTTP、RESTful HTTP、JMS和文件传输等。 在开发过程中,可以通过Maven项目...

    CXF webservice Demo

    【CXF Webservice Demo】是基于Apache CXF框架的一个示例项目,用于演示如何使用CXF来创建和消费Web服务。Apache CXF是一个开源的Java框架,它允许开发者构建和集成Web服务,支持多种Web服务标准,如SOAP、RESTful ...

    CXF webservice 验证码接口

    使用jdk1.6、cxf2.3和tomcat开发的一个关于验证码的webservice接口,主要实现对手机验证码的验证。

    基于cxf 的webService 接口开发及调用步骤文档

    ### 基于CXF的WebService接口开发及调用步骤详解 #### 一、概述 在当前企业级应用开发中,服务化与微服务架构逐渐成为主流趋势,而WebService作为一种跨语言、跨平台的服务交互方式,在众多场景下仍然发挥着重要...

    CXF webservice+mybatis

    将CXF和Mybatis整合,可以创建一个基于Web服务的数据访问层。以下是整合步骤: 1. **创建服务接口**:定义一个Java接口,包含CRUD操作。 2. **创建服务实现**:实现该接口,并使用Mybatis的SqlSession执行SQL操作...

    CXF开发webservice服务端

    ### CXF 开发 WebService 服务端详解 #### 一、引言 随着企业级应用对服务化的不断追求,Web Service 成为了实现不同系统间通信的重要手段之一。Apache CXF 是一个高性能、易于使用的框架,它支持多种协议,如SOAP...

    基于spring注解的cxf实现webservice

    本文将详细讲解如何基于Spring注解来利用CXF实现Web服务。 首先,我们需要理解Spring注解的基本概念。Spring注解是一种元数据,它可以直接应用于源代码(如类、方法或字段),提供了声明式编程的能力,减少了XML...

    SSH CXF webservice 开发笔记demo(包含步骤文档及所需war包)

    SSH CXF Webservice 开发是Java企业级应用中常见的服务集成和发布技术。SSH是指Spring、Struts和Hibernate这三个开源框架的组合,它们分别负责控制层、视图层和持久层的功能。CXF则是一个流行的Java Web服务实现,...

    cxf开发webservice所用jar包

    这个标题“cxf开发webservice所用jar包”表明我们正在讨论一组CXF框架所需的JAR文件,这些文件对于利用CXF开发基于Web服务的应用程序至关重要。在描述中提到“cxf-2.4.1整合spring3.0所用jar包”,这暗示了我们使用...

    cxf 开发webservice客户端

    2. 生成客户端代码:CXF提供了一个工具,可以基于WSDL(Web服务描述语言)文件自动生成客户端代理类。运行以下命令: ```bash java -jar cxf-codegen-plugin-3.4.x.jar -wsdl ...

    cxf webservice开发实例

    【CXF Webservice 开发实例】是基于Apache CXF框架实现Web服务的一种实践教程,它主要涉及了如何将CXF与Spring框架进行整合,以构建高效、可维护的Web服务。CXF是一个开源的Java框架,它允许开发者创建和消费各种Web...

    CXF webService 工具类

    CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和开发Web服务。CXF使得开发者能够轻松地创建和部署高质量、高性能的SOAP和RESTful Web服务。CXF工具类是CXF框架的一部分,提供了...

    基于CXF的webservice的发布及访问

    **基于CXF的Web服务发布及访问** 在Java开发中,Apache CXF是一个广泛使用的开源框架,用于构建和实现Web服务。本教程将详细介绍如何利用CXF发布基于SOAP 1.2的Web服务,以及如何进行客户端调用。首先,我们需要...

    spring+cxf 开发webservice

    6. **MyEclipse**:MyEclipse是基于Eclipse的IDE,增加了对Java EE项目的特殊支持,包括图形化部署描述符编辑器、数据库工具和Web服务工具,使得在IDE内开发Spring+CXF项目更为便捷。 7. **二次开发**:这个项目...

    使用cxf和spring开发基于https的webservice服务端以及客户端样例

    本示例将详细介绍如何使用Apache CXF和Spring框架来开发基于HTTPS的安全Web服务,包括服务端和客户端的实现。 Apache CXF是一个开源的Java框架,它支持创建和消费各种Web服务,包括SOAP和RESTful API。而Spring框架...

    使用CXF开发WebService服务器端和客户端

    WebService是一种基于XML的标准化方式,它允许不同平台、语言和操作系统之间的应用程序进行互操作。SOAP(Simple Object Access Protocol)是Web服务最常用的通信协议,而WSDL(Web Services Description Language)...

    基于 cxf 2.7.5 开发的 webservice [soap restful]

    【标题】基于CXF 2.7.5开发的WebService:SOAP与RESTful详解 【描述】本项目是使用Apache CXF 2.7.5版本实现的WebService服务,包括了SOAP和RESTful两种常见的Web服务接口。Apache CXF是一个开源的Java框架,它为...

    WebService开发客户端 cxf方式

    本篇文章将详细探讨如何使用CXF框架来开发WebService客户端。 一、CXF简介 CXF是一个开源的Java框架,它支持构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)Web服务。CXF提供了...

Global site tag (gtag.js) - Google Analytics