cxf服务端

1.去官方下载对应的jar包:http://cxf.apache.org/

2.maven配置相应jar包

3.修改web.xml,完成spring和cxf配置

   <!-- Spring -->
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext.xml
</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <!-- CXFServlet -->
<servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/WebService/*</url-pattern>
</servlet-mapping>

4.编写服务接口和实现

 @WebService(targetNamespace=Constant.NAME_SPACE)
public interface FinanceService { String financeSearchById(@WebParam(name="id")Integer id); }
 @Transactional
public class FinanceServiceImpl implements FinanceService{ private static Logger logger = Logger.getLogger(FinanceServiceImpl.class); @Resource(name="financeDao")
private FinanceDao financeDao; @Override
public String financeSearchById(Integer id) {
String json; try{
json=financeDao.financeSearchById(id);
}catch(Exception e){
Map<String,Object> map = new HashMap<String, Object>();
map.put("is_success", false);
map.put("error_msg", "程序执行出错:"+e.getMessage());
json = JsonUtil.objectToJson(map);
} return json;
} }

5.修改spring配置文件。

 <?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" xmlns:cxf="http://cxf.apache.org/core"
xsi:schemaLocation="http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd
http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd"> <description>Apache CXF配置</description> <import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" /> <!-- CXF Web Service Server端配置 -->
<bean id="wsFinanceServiceImpl" class="com.****.******.business.webservice.server.impl.FinanceServiceImpl"/>
<jaxws:server id="wsFinanceService" serviceClass="com.****.******.business.webservice.server.FinanceService" serviceBean="#wsFinanceServiceImpl" address="/financeService" /> </beans>

6.tomcat发布运行,http://localhost:8080/******/WebService/financeService?wsdl,看到描述文件即可

7.编写测试类,测试。

 public class Test {
public static void main(String[] args) {
JaxWsProxyFactoryBean webService = new JaxWsProxyFactoryBean();
webService.setServiceClass(FinanceService.class);
webService.setAddress("http://localhost:8080/******/WebService/financeService?wsdl");
FinanceService financeService = (FinanceService) webService.create();
System.out.println(financeService.financeSearchById(5));
}
}

8.如预期输出结果就表示调用成功了。

cxf客户端

1.拿到服务端wsdl连接。

2.使用cxf的wsdl2java生成cxf客户端代码。

cxf下载地址:http://cxf.apache.org/download.html

 下载之后,设置添加系统变量

  变量名:CXF_HOME

  变量值:E:\mysoft\apache-cxf-3.0.2(cxf解压路径)

 设置完之后,cmd里面输入:

  wsdl2java -v(如果显示版本信息就表示安装成功了。)

 然后输入:

  wsdl2java  -frontend jaxws21 -p  com.****.******.business.webservice.client -d E:\mysoft\apache-cxf-3.0.2\myclass  -client -autoNameResolution  http://localhost:8080/******/WebService/financeService?wsdl

3.将生成的代码,除了client和service结尾的文件,和package-info.java之外的文件拷贝到工程下面,进行测试。

4.修改applicationContext-cxf.xml文件添加下面代码:

<!-- CXF Web Service Client端配置 -->
<jaxws:client id="financeService" serviceClass="com.****.******.business.webservice.client.financeService" address="http://localhost:8080/******/WebService/financeService?wsdl" />

5.编写测试类在里面添加下面代码:

ClassPathXmlApplicationContext xmlApplicationContext = new ClassPathXmlApplicationContext("/context/applicationContext-cxf.xml");
FinanceService bean = xmlApplicationContext.getBean(financeService.class);
System.out.println(bean.financeSearchById(5));

6.如预期输出结果就表示调用成功了。

【Web】CXF WebService 服务端和客户端 环境搭建及测试的更多相关文章

  1. myeclipse-建立webservice服务端和客户端

    一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...

  2. WebService-03-使用CXF开发服务端和客户端

    写在前面的话 前面两节说了使用Java提供的包开发服务端和客户端,现在使用CXF来开发,CXF提供了两个类发而服务,一个是ServerFactoryBean,另一个是JaxWsServerFactor ...

  3. MyEclipse创建WebService服务端和客户端

    1.新建立一个javaWeb项目,一个java类,如图: 2.接下来我们就要将项目中的TestService的这个类生成WebService服务端,选择new Web Service,如图: Next ...

  4. webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成

    首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...

  5. 通过jaxws-ri创建webservice服务端和客户端

    1. 获得开发包 当然是到 SUN 的开发网站下载 JAX-WS RI,或者下载我的网盘备份 ,下载下来的只是一个jar包,参考官网上的方法在命令行调用:java -jar JAXWS2.1.2-20 ...

  6. IDEA创建WebService服务端与客户端

    创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 Tools 的 ...

  7. idea创建WebService服务端和客户端

    创建服务端 1.file–>new–>project 2.点击next后输入服务端名,点击finish,生成目录如下 3.在 HelloWorld.Java 文件中右击,选 WebServ ...

  8. php webservice服务端和客户端的实现

    1.创建类文件service.class.php,service类,添加若干方法. 2.用浏览器访问create_wsdl.php文件,生成service.wsdl文件. 3.修改wsdl文件,loc ...

  9. Windows下Git服务端和客户端的搭建

    1.服务器端的搭建 本人使用的是一款带源码的工具:bonobogitserver,对应的网址为:https://bonobogitserver.com/ 具体操作方式如下: 1.打开网址,下载最新版本 ...

随机推荐

  1. redis在spring中的配置及java代码实现

    1.建一个redis.properties属性文件 # Redis Setting redis.addr = 127.0.0.1 redis.port = 6379 redis.auth = mast ...

  2. JavaWeb解释一下什么是 servlet?

    Servlet是一种独立于平台和协议的服务端的java技术,可以生成动态WEB页面与传统的CGI(计算机图形接口)和其他类似的CGI技术相比.Servlet具有更好的可移植性.更强大的功能,更少的投资 ...

  3. Sliding Window Maximum

    (http://leetcode.com/2011/01/sliding-window-maximum.html) A long array A[] is given to you. There is ...

  4. IOS 使用IOS6苹果地图

    IOS应用程序中使用Map Kit API开发地图应用程序.其核心是MKMapView类的使用.我们可以设置地图显示方式,控制地图,可以在地图上添加标注. 1.显示地图 在Map Kit API中显示 ...

  5. Oracle SQL篇(四)group by 分组与分组的加强 rollup

        分组操作group by 和分组的强化(rollup) 分组操作和分组函数的使用,对于编写SQL语句的人来说,是最基本的概念. 我们来看下面的例子: 在这里我们使用员工表EMP scott@D ...

  6. 激活Windows 10 正式版

    原文 http://jingyan.baidu.com/article/27fa732684b5f646f8271ff4.html Windows 10只提供为期一年的免费升级.因此,不要无限拖延期自 ...

  7. 基于Visual C++2013拆解世界五百强面试题--题15-递归相加

    有一分数序列: 1/2 , 1/4 , 1/6 , 1/8 ......,用递归的方法,求此数列20项之和. 可以看出规律:每一项位1/n*2 这个很容易些递归,但是要注意一点,使用浮点数相除保存: ...

  8. png的格式及像素存储分析

    从图片的数据块存储方式来看png分两种 1.索引色模式存储.png8的索引色透明就采取该种方式.该种方式是将颜色存在png的可选模块调色板中,调色板的色彩存储格式为RGB(各1byte).而图片的数据 ...

  9. HDU1181【有向图的传递闭包】

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1181 题意很简单. 有用并查集做的.我这里用传递闭包做. 有向图的传递闭包采用Floyd思想,可以判断 ...

  10. Node.cluster

    nodejs是一个单进程单线程的引擎,只能利用到单个cpu进行计算,面对当今服务器性能的提高,cpu的利用率显然对node应有的性能大打折扣,面对这个问题,cluster应运而生. cluster介绍 ...