`
ChineseThink
  • 浏览: 143026 次
  • 性别: 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剖析

    CXF 学习小例子

    里面是我练习的CXF一个demo,下载下来即可使用,很适合新手,内容代码很容易懂的。还有我的一个学习总结,希望能对你们日常的开发有帮助

    CXF的学习笔记

    Frontends:CXF 支持多种“Frontend”编程模型,CXF 实现了 JAX-WS API (遵循 JAX-WS 2.0 TCK 版本),它也包含一个“simple frontend”允许客户端和 EndPoint 的创建,而不需要 Annotation 注解。CXF 既支持 WSDL ...

    学习CXF WebService入门实例一.pdf

    学习CXF WebService入门实例一.pdf学习CXF WebService入门实例一.pdf

    WebService-CXF学习.doc

    ApacheCXF项目是由ObjectWeb Celtix和CodeHaus XFire合并成立。...合并后的ApacheCXF融合该两个开源项目的功能精华,提供了实现SOA所需要的核心ESB功能框架,包括SOA服务创建,服务路由,及一系列企业级QoS功能。

    springboot整合CXF发布webservice和客户端调用

    springboot整合CXF发布webservice和客户端调用 项目中每个类都有详细的注释,保证都能看懂,不失为一个学习springboot整合cxf来学习webservice发布调用的好例子

    Apache-cxf-学习笔记.docx

    CXF 是Celtix + Xfire的结合体,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache CXF 了。CXF 继承了 Celtix 和 XFire 两大开源项目的精华,提供了对...Apache CXF已经是一个正式的Apache顶级项目。

    cxf WebService

    一个简单的cxf WebService开发项目 有助于初学者学习

    springboot+cxf实例

    一个用springboot搭建的简单的cxf实例,可以用于入门跟学习

    CXF简单示例

    学习CXF的例子,可参看官方文档,这是其第一个示例。

    CXF接口Spring+Hibernate的添加完整版

    有CXF接口开发的技术,也有CXF与Spring结合的实现,与数据库访问用到了Hibernate的注解,虽然只有一个添加功能,相信对学习这方面的朋友还是有帮助的。

    JDK+CXF实现webservice简单案例

    通过JDK+CXF结合开发一个简单的webservice学习案例,下载下来后需要自己修改发布的IP地址为自己的端口,然后发布,以及通过新的WSDL文件从新生成客户端代码才能实现客户端、服务端的交互

    Spring+SpringMVC+mybatis+Cxf文档说明

    最近开发了一个基于ssm(Spring+SpringMVC+Mybatis)的项目,整合了CXF发布webservice。现在来分享项目逻辑和一下开发经验。 当然,开发这个项目的时候,借鉴网上一个博客的经验,主要是ssm的搭建过程,贴出博客地址...

    cxf2.4.1+spring3.0+身份验证 webservice

    因为前一个资源,忘记删除个人的资料了,现在重新传一个,供大家学习使用,互相交流,资源内容 为rar格式的 项目,cxf 为服务器端,cxfTest 为客户端,里边有很多调用方式,还有身份验证,使用时,搭配好 客户端和...

    CXF v3 从wsdl到java

    注意: 1.如果想学习java优先请...2.包含一个eclipse工程以及一个ppt,ppt详细说明了实现的步骤。 3.设计中重点考察了schema validate的配置与实现,后续更高级的相关知识敬请关注 http://blog.csdn.net/harrison2010

    Spring+Apache CXF+MyBatis+Maven实例

    本实例是一个简单的Spring+Apache CXF+MyBatis+Maven的集成小项目,可以最为学习参考,程序说明在我的博客里面有,链接地址:http://blog.csdn.net/liuxing9345/article/details/77983755

    Apache CXF Web service 资料

    详细的从入门到精通, 手把手的教你做WEB SERVICE 该资源借花献佛,是一个高手写的,我在这里借花献佛,推广推广,让大家多一个学习的机会,吃水不忘挖井人,轻大家也谢谢写该文档的高手

    CXF开发Web Service实例demo

    Web Service学习-CXF开发Web Service实例demo(一)

    CXF简单例子Myecplise8.5工程源码

    CXF例子程序,是我从网上学习,查看资料写好的程序。对于初学CXF,初始WebService很有用,我也是一个初学者。注意:需要从网上下载CXF的jar包,放到WEB-INF下的lib中,否则程序无法运行,从APACHE官方下载的apache-...

Global site tag (gtag.js) - Google Analytics