使用Maven搭建项目测试简单的CXF实例

Server:

  pom.xml:

    <!-- begin CXF Server -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<!-- 如果CXF不集成到Web服务器中,必须添加该引用 -->
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.1.1</version>
</dependency>
<!-- End CXF Server -->

定义WebServer访问接口: ICXFService

package com.cxf;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService; @WebService(name = "cxfService", targetNamespace = "http://localhost/services/testCXF")
public interface ICXFService { @WebMethod
String test1(@WebParam(name = "name")String name);
}

定义接口的具体实现:CXFServiceImpl

package com.cxf.impl;

import javax.jws.WebService;

import com.cxf.ICXFService;

@WebService(endpointInterface = "com.cxf.ICXFService",
portName = "HelloCXF",
serviceName = "HelloCXFService",
targetNamespace = "http://localhost/services/testCXF")
public class CXFServiceImpl implements ICXFService { @Override
public String test1(String name) {
return "Hello " + name;
} }

测试服务:

package com.cxf;

import org.apache.cxf.jaxws.JaxWsServerFactoryBean;

import com.cxf.impl.CXFServiceImpl;

public class CXFServiceRun {

    public static void main(String[] args) {
JaxWsServerFactoryBean factory = new JaxWsServerFactoryBean();
factory.setServiceClass(ICXFService.class);
factory.setAddress("http://localhost:8888/services/hello");
factory.setServiceBean(new CXFServiceImpl());
factory.create();
}
}

访问: http://localhost:8888/services/hello?wsdl

Client:

创建CXF的客户端maven工程

添加 CXF 必须的 jar :

<!-- begin CXF Client -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.1.1</version>
</dependency>
<!-- End CXF Client -->

下载 apache 的 CXF 安装包 本次使用的是 apache-cxf-3.1.15 解压,配置环境变量就可以使用。

配置环境变量:

配置完成之后再 命令窗口 下执行 wsdl2java -help 出现如下信息表示配置成功:

执行:wsdl2java -encoding UTF-8 -d C:\Users\丰志\Desktop\cxfServer\src\main\java -p com.cxf.generate http://localhost:8888/services/hello?wsdl

-d 后面跟生成java代码的目录, -p后面跟生成代码的包名称,最后跟wsdl的链接地址(或wsdl文件路径 + 文件名称)

生成的代码目录文件:

然后将CXF生成的代码粘贴到客户端项目中(也可以直接将代码生成到eclipse中的webService的客户端工程中)

编写客户端测试:TestClient


package com.cxf.client;

import java.net.MalformedURLException;
import java.net.URL; import org.apache.cxf.jaxws.JaxWsProxyFactoryBean; import com.cxf.generate.CxfService;
import com.cxf.generate.ICXFServiceService; public class TestClient { public static void main(String[] args) {
//jaxws调用
// URL不是必须的,除非服务的地址有改变
// URL wsdlUrl = null;
// try {
// wsdlUrl = new URL("http://localhost:8888/services/hello?wsdl");
// } catch (MalformedURLException e) {
// e.printStackTrace();
// }
// ICXFServiceService factory = new ICXFServiceService(wsdlUrl);
//// ICXFServiceService factory = new ICXFServiceService();
// CxfService cxfService = factory.getCxfServicePort();
// String name = cxfService.test1("lisi");
// System.out.println(name); // CXF 调用
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
factory.setServiceClass(CxfService.class);
factory.setAddress("http://localhost:8888/services/hello");
CxfService cxfService = factory.create(CxfService.class);
String name = cxfService.test1("lisi");
System.out.println(name);
} }

两种实现方式都可以

运行成功:

源码:https://files.cnblogs.com/files/guofz/FirstCXF.rar

参考:https://blog.csdn.net/accountwcx/article/details/47082487

使用CXF做简单的WebService例子的更多相关文章

  1. 使用 CXF 做 webservice 简单例子(转载)

    使用 CXF 做 webservice 简单例子     Apache CXF 是一个开放源代码框架,提供了用于方便地构建和开发 Web 服务的可靠基础架构.它允许创建高性能和可扩展的服务,您可以将这 ...

  2. webService框架CXF的简单使用

    最近本来已经将上一个项目交活,全身心投入了另外项目的前端的开发工作.可之前的项目经理通知我,之前的项目需要做一个webService的功能,于是稍微做了一下webService,可是忘了通知我现在的项 ...

  3. 使用Multiplayer Networking做一个简单的多人游戏例子-3/3(Unity3D开发之二十七)

    使用Multiplayer Networking做一个简单的多人游戏例子-1/3 使用Multiplayer Networking做一个简单的多人游戏例子-2/3 使用Multiplayer Netw ...

  4. 使用Multiplayer Networking做一个简单的多人游戏例子-2/3(Unity3D开发之二十六)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51007512 ...

  5. 使用Multiplayer Networking做一个简单的多人游戏例子-1/3(Unity3D开发之二十五)

    猴子原创,欢迎转载.转载请注明: 转载自Cocos2Der-CSDN,谢谢! 原文地址: http://blog.csdn.net/cocos2der/article/details/51006463 ...

  6. (转)Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

  7. 利用VS2008发布一个简单的webservice

    一个开发好的webservice,怎样发布出去,供其他电脑访问呢? 本文将介绍如何发布一个简单的webservice,其中的内容都是在网上查看别人文章,自己仿照着做了一遍,因此,难免会发生错误,如果发 ...

  8. Spring Boot SOAP Webservice例子

    前言 本文将学习如何利用Spring boot快速创建SOAP webservice服务: 虽然目前REST和微服务越来越流行,但是SOAP在某些情况下,仍然有它的用武之地: 在本篇 spring b ...

  9. Web Service入门简介(一个简单的WebService示例)

    Web Service入门简介 一.Web Service简介 1.1.Web Service基本概念 Web Service也叫XML Web Service WebService是一种可以接收从I ...

随机推荐

  1. python入门(3)python的解释器

    python入门(3)python的解释器 Python写的程序是以.py为扩展名的文本文件.要运行代码,就需要Python解释器去执行.py文件. 由于整个Python语言从规范到解释器都是开源的, ...

  2. 新概念英语(1-61)A bad cold

    新概念英语(1-61)A bad cold What is good news for Jimmy? A:Where's Jimmy? B:He's in bed. A:What's the matt ...

  3. FPGA与MATLAB数据交互高效率验证算法——仿真阶段

    之前博文是对基本设计技巧的总结和一些小设计随笔,内容有点杂,缺乏目的性.本来后续计划设计几个小项目,但导师的任务比较紧,所以为了提高效率,后续博客会涉及到很多算法方面的设计与验证的内容,主要关于OFD ...

  4. 框架学习笔记之Mybatis(二)

    一.动态sql 通过mybatis提供的标签,实现sql语句的拼接. 1.where <select id="findUserList" parameterType=&quo ...

  5. POJ-1062 昂贵的聘礼---Dijkstra+枚举上界

    题目链接: https://vjudge.net/problem/POJ-1062 题目大意: 中文题 思路: 1是终点,可以额外添加一个源点0,0到任意一节点的距离就是这个点的money,最终求的是 ...

  6. 如何用webgl(three.js)搭建一个3D库房-第二课

    闲话少叙,我们接着第一课继续讲(http://www.cnblogs.com/yeyunfei/p/7899613.html),很久没有做技术分享了.很多人问第二课有没有,我也是抽空写一下第二课. 第 ...

  7. requests-模拟登陆

    import requests requests.get('http://httpbin.org/cookies/set/number/123456') response = requests.get ...

  8. 典型分布式系统分析之MapReduce

    在 <分布式学习最佳实践:从分布式系统的特征开始(附思维导图)>一文中,提到学习分布式系统的一个好方法是思考分布式系统要解决的问题,有哪些衡量标准,为了解决这些问题:提出了哪些理论.协议. ...

  9. mvc4.0 @Styles.Render(转)

    1.@Styles.Render 在页面上可以用@Styles.Render("~/Content/css") 来加载css 首先要在App_Start 里面BundleConfi ...

  10. leetcode 561.Array Partition I-easy

    Given an array of 2n integers, your task is to group these integers into n pairs of integer, say (a1 ...