【Web】CXF WebService 服务端和客户端 环境搭建及测试
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 服务端和客户端 环境搭建及测试的更多相关文章
- myeclipse-建立webservice服务端和客户端
一.建立webservice服务端: 1.新建一个web service project,名称为webservice_server截图如下,点击finish. 2.选择工程,点击右键,选择new-&g ...
- WebService-03-使用CXF开发服务端和客户端
写在前面的话 前面两节说了使用Java提供的包开发服务端和客户端,现在使用CXF来开发,CXF提供了两个类发而服务,一个是ServerFactoryBean,另一个是JaxWsServerFactor ...
- MyEclipse创建WebService服务端和客户端
1.新建立一个javaWeb项目,一个java类,如图: 2.接下来我们就要将项目中的TestService的这个类生成WebService服务端,选择new Web Service,如图: Next ...
- webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...
- 通过jaxws-ri创建webservice服务端和客户端
1. 获得开发包 当然是到 SUN 的开发网站下载 JAX-WS RI,或者下载我的网盘备份 ,下载下来的只是一个jar包,参考官网上的方法在命令行调用:java -jar JAXWS2.1.2-20 ...
- IDEA创建WebService服务端与客户端
创建服务端 一.file–>new–>project 二.点击next后输入服务端名,点击finish,生成目录如下 三.在 HelloWorld.Java 文件中右击,选 Tools 的 ...
- idea创建WebService服务端和客户端
创建服务端 1.file–>new–>project 2.点击next后输入服务端名,点击finish,生成目录如下 3.在 HelloWorld.Java 文件中右击,选 WebServ ...
- php webservice服务端和客户端的实现
1.创建类文件service.class.php,service类,添加若干方法. 2.用浏览器访问create_wsdl.php文件,生成service.wsdl文件. 3.修改wsdl文件,loc ...
- Windows下Git服务端和客户端的搭建
1.服务器端的搭建 本人使用的是一款带源码的工具:bonobogitserver,对应的网址为:https://bonobogitserver.com/ 具体操作方式如下: 1.打开网址,下载最新版本 ...
随机推荐
- Filter 字符编码Filter 一
使用字符编码Filter package com.helloweenvsfei.filter; import java.io.IOException; import javax.servlet.Fil ...
- UVa1585 Score
#include <stdio.h> int main(){ int T, O, score; char str[81], *p; scanf("%d" ...
- BZOJ 1497: [NOI2006]最大获利( 最大流 )
下午到周六早上是期末考试...但是我还是坚守在机房....要挂的节奏啊.... 这道题就是网络流 , 建图后就最大流跑啊跑啊跑... --------------------------------- ...
- MSSQL随机数概率测试
随机概率测试 创建一个表统计create table t_test(ip char(15)) --truncate table t_test; declare @i int ;set @i=0; -- ...
- A Byte of Python 笔记(2)基本概念:数、字符串、转义符、变量、标识符命名、数据类型、对象
第4章 基本概念 字面意义上的常量 如5.1.23.9.23e-3,或者 'This is a string'."It's a string!" 字符串等 常量,不能改变它的值 数 ...
- python文件操作精髓
总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...
- Ajax 生成流文件下载 以及复选框的实现
JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...
- Flex的学习资源
学习网站 http://www.adobe.com/cn/devnet/flex.html Adobe Flex开发人员中心 http://www.adobe.com/cn/devnet/flex/v ...
- Struts2 学习笔记19 类型转换 Part1
现在来说一说类型转换,提到类型转换其实我们之前早已经用过了,在url传递参数的时候,我们传递过来的参数其实都是String类型的,在显示的时候都自动转换了,像这种简单的转换很好理解,我们要说的是,转换 ...
- 用javap命令反编译来分析字符串问题
编写Test.java.编译完后生成Test.class文件,然后对该文件运行javap -c Test命令,生成字节码指令.阅读并得出结论 一.s1和s2指向常量池的不同常量 ①java代码 pub ...