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. Filter 字符编码Filter 一

    使用字符编码Filter package com.helloweenvsfei.filter; import java.io.IOException; import javax.servlet.Fil ...

  2. UVa1585 Score

    #include <stdio.h> int main(){    int T, O, score;    char str[81], *p;    scanf("%d" ...

  3. BZOJ 1497: [NOI2006]最大获利( 最大流 )

    下午到周六早上是期末考试...但是我还是坚守在机房....要挂的节奏啊.... 这道题就是网络流 , 建图后就最大流跑啊跑啊跑... --------------------------------- ...

  4. MSSQL随机数概率测试

    随机概率测试 创建一个表统计create table t_test(ip char(15)) --truncate table t_test; declare @i int ;set @i=0; -- ...

  5. A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象

    第4章 基本概念 字面意义上的常量 如5.1.23.9.23e-3,或者 'This is a string'."It's a string!" 字符串等 常量,不能改变它的值 数 ...

  6. python文件操作精髓

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  7. Ajax 生成流文件下载 以及复选框的实现

    JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...

  8. Flex的学习资源

    学习网站 http://www.adobe.com/cn/devnet/flex.html Adobe Flex开发人员中心 http://www.adobe.com/cn/devnet/flex/v ...

  9. Struts2 学习笔记19 类型转换 Part1

    现在来说一说类型转换,提到类型转换其实我们之前早已经用过了,在url传递参数的时候,我们传递过来的参数其实都是String类型的,在显示的时候都自动转换了,像这种简单的转换很好理解,我们要说的是,转换 ...

  10. 用javap命令反编译来分析字符串问题

    编写Test.java.编译完后生成Test.class文件,然后对该文件运行javap -c Test命令,生成字节码指令.阅读并得出结论 一.s1和s2指向常量池的不同常量 ①java代码 pub ...