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

CXF 学习 (一)

阅读更多
为了了解WebService,在网上找了组视频连续的看了几天,收获良多。
基本上对JAX-WS接口规范基础有所了解,以及Java开发Webservice的整体步骤。
视频资源地址:http://www.verycd.com/topics/2917293/
确实将得挺好的,可以学习下。

看完我就想找个框架了解下,由于CXF可以与Spring无缝整合,就选择其作为入口。
下面是我的第一个实例:

--服务器端

1.导入Web项目所需要的jar包

2.web.xml文件的编写
	<servlet>
		<servlet-name>CXFServlet</servlet-name>
		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
		<load-on-startup>0</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>CXFServlet</servlet-name>
		<url-pattern>/cxftest/*</url-pattern>
	</servlet-mapping>


3.编写接口Login接口
package com.example.service;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface Login {
	@WebMethod
	public String login(@WebParam(name="name") String name, @WebParam(name="password")String password);
	
}


4.编写接口的实现类LoginImpl (注意Annotation的配置)
package com.example.service.impl;

import javax.jws.WebService;

import com.example.service.Login;

@WebService(endpointInterface="com.example.service.Login",serviceName="Login")
public class LoginImpl implements Login {

	public String login(String name, String password) {
		String result = "登录CXF服务器成功。。。";
		if(!"cxf".equalsIgnoreCase(name) || !"cxf".equalsIgnoreCase(password)){
			return "账号密码错误。";
		}
		return result;
	}

}


5.创建一个Servlet实例(InitServlet)来发布接口
package com.example.startup;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.example.service.impl.LoginImpl;

public class InitServlet extends HttpServlet {
	
	public void init() throws ServletException {
		LoginImpl loginImpl = new LoginImpl();
		
		JaxWsServerFactoryBean jaxFactory = new JaxWsServerFactoryBean();
		jaxFactory.setAddress("/Login");
		jaxFactory.setServiceClass(LoginImpl.class);
		jaxFactory.setServiceBean(loginImpl);
		jaxFactory.create();
		System.out.println("InitServlet...");
	}

}


6.InitServlet在Web.xml中的配置
<servlet>
		<servlet-name>InitServlet</servlet-name>
		<servlet-class>com.example.startup.InitServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	
	<servlet-mapping>
		<servlet-name>InitServlet</servlet-name>
		<url-pattern>/init</url-pattern>
	</servlet-mapping>

7.在浏览器地址栏中输入http://localhost:8080/cxf_002/cxftest/Login?wsdl
出现wsdl的xml文件信息。

--客户端测试代码
1.在服务开启的情况下使用wsimport工具根据生成客户端代码
(wsimport -d d:/service/04 -keep -verbose  http://localhost:8080/cxf_002/cxftest/Login?wsdl)
或者使用CXF 自带的工具wsdl2java (wsdl2java -d:/service/04 -client http://localhost:8080/cxf_002/cxftest/Login?wsdl)

2.将impl包中的Login.java拷贝至测试客户端中

3.使用Main方法测试接口的实现
package com.example.start;

import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;

import com.example.service.impl.Login;


public class LoginTest {
	public static void main(String[] args) {
		JaxWsProxyFactoryBean jaxFactory = new JaxWsProxyFactoryBean();
		jaxFactory.setAddress("http://localhost:8080/cxf_002/cxftest/Login?wsdl");
		jaxFactory.setServiceClass(Login.class);
		Login login = (Login)jaxFactory.create();
		String result = login.login("cxf", "cxf");
		System.out.println("结果:"+result);
	}
}


下面附上示例源码(注意需要引入CXF的jar文件):

分享到:
评论
1 楼 wangyudong 2017-11-27  
由CXF实现的微服务需要有比较好的工具去测试RESTful API,很多REST Client是不支持自动化测试RESTful API,也不支持自动生成API文档.
之前习惯用一款名字为 WisdomTool REST Client,支持自动化测试RESTful API,输出精美的测试报告,并且自动生成精美的RESTful API文档。
轻量级的工具,功能却很精悍哦!

https://github.com/wisdomtool/rest-client

Most of REST Client tools do not support automated testing.

Once used a tool called WisdomTool REST Client supports automated testing, output exquisite report, and automatically generating RESTful API document.

Lightweight tool with very powerful features!

https://github.com/wisdomtool/rest-client

相关推荐

    WebService CXF学习文档

    做开发时,查了大量资料,发现一比较全面的资料,分享一下!...WebService CXF学习——高级篇(一)(二) 1.整合Spring框架 2.CXF+Spring+Hibernate 3.WS-Security WebService CXF学习——JAXB剖析

    apache—CXF学习文档

    Apache CXF是一个开源的Web服务框架,主要用于构建和部署SOAP(简单对象访问协议)和RESTful(Representational State Transfer)服务。它是一个高度可扩展且功能丰富的工具,旨在简化服务的开发过程,同时提供对...

    cxf经典学习资料-1

    【标题】"cxf经典学习资料-1"指的是Apache CXF框架的学习资源,这是一个用于构建和开发Web服务的开源项目。CXF允许开发者通过简单的API来创建和消费Web服务,支持多种协议和标准,如SOAP、RESTful API、WS-*等。 ...

    Cxf应用整理学习资料

    ### CXF应用整理学习资料详解 #### 一、CXF简介与HelloWorld示例 Apache CXF是一个开源的框架,用于构建和消费基于SOAP、XML、REST等协议的Web服务。CXF支持JAX-WS和JAX-RS标准,为Java开发人员提供了丰富的API,...

    cxf经典学习资料-2

    这份资料集合了CXF的核心概念、配置、扩展以及与其他技术的集成,对于希望深入学习Web服务,特别是基于CXF框架的开发者来说,是一份非常有价值的资源。 【描述】"webservice经典学习资料,内容丰富,首先资料"表明...

    CXF学习-环境搭建

    【CXF学习-环境搭建】 Apache CXF 是一个开源的Java框架,主要用于构建和服务导向架构(SOA)的应用程序。它提供了多种方式来创建和消费Web服务,包括基于SOAP和RESTful风格的服务。本篇文章将重点讲解如何进行CXF...

    CXF 学习小例子

    【CXF学习小例子】是针对Java开发人员的一个实践教程,特别适合初学者。CXF是一个开源的服务框架,它允许开发者构建和消费各种Web服务。这个压缩包包含了一个实际的CXF示例项目以及作者的学习笔记,可以帮助我们深入...

    WebService的实现——CXF学习笔记

    【WebService的实现——CXF学习笔记】 在Java世界中,WebService是一种通过标准协议(如SOAP)进行跨平台、跨语言通信的技术。CXF是Apache软件基金会的一个开源项目,它提供了构建和消费Web服务的工具和库。CXF支持...

    Apache_cxf_学习笔记

    Apache CXF 是一个开源的Java框架,主要用于构建和开发服务导向架构(Service-Oriented Architecture, SOA)和Web服务。本学习笔记旨在提供对Apache CXF的基本理解、功能特性和实际操作指导。 **1. CXF 简介** 1.1...

    CXF 学习必备神器

    【CXF 学习必备神器】是一套专为Java开发者准备的全面且深入的CXF框架学习资源。CXF,全称CXF Common Services Framework,是Apache软件基金会的一个开源项目,主要用于构建和开发服务导向架构(SOA)中的Web服务。...

    cxf入门文档

    cxf从入门到精通”这句话表明,这份文档不仅适合刚刚接触CXF的开发者,还提供了一个全面的学习路径,从基础到进阶,涵盖了CXF的所有关键知识点。通过阅读这份文档,你可以逐步掌握如何使用CXF来创建、测试和部署Web...

    非常详细的cxf开发学习教程集合

    CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和服务导向架构(SOA)的应用程序。本教程集合是为初学者精心准备的,旨在帮助你全面了解并掌握CXF的开发技能。让我们逐一探讨这些...

    CXF学习笔记.docx )

    CXF(CXF: Composite eXtensible Framework)是一个开源的Java框架,它主要用于构建和服务导向架构(Service-Oriented Architecture, SOA)中的Web服务。CXF允许开发者通过多种方式来创建和消费Web服务,无论是基于...

    Axis2,CXF版本学习笔记

    文件“WebService_CXF学习.doc”和“axis2_WebService_开发指南.docx”、“axis_WebService_-_开发指南.docx”应该包含了关于这两个框架的详细教程和实践案例,可以帮助你更深入地理解和应用它们。 总的来说,Axis2...

    WebService-CXF学习.doc

    为了更好地理解 CXF 的工作原理,通常会通过一个简单的 HelloWorld 示例来开始学习。首先,你需要从 Apache 官方网站下载 CXF 的最新版本,然后在 Java 项目中导入所需的依赖库,如 commons-logging、geronimo-...

    cxf一个入门实例,用最新的cxf2.2.4开发的

    CXF(CXF: Composite eXtensible Services Framework)是一个开源的Java框架,主要用于构建和服务导向架构(SOA)。这个入门实例是基于CXF 2.2.4版本,一个较旧但...这将为你进一步深入学习和使用CXF打下坚实的基础。

Global site tag (gtag.js) - Google Analytics