调用CXF工具 生成 WSDL【转】
在做WebService的时候,生成WSDL是必不可少的一步。我们通常使用的工具就是Axis和CXF。
CXF提供了一个命令行工具,可以通过命令来生成Java to WSDL,也可以由WSDL生成Java类。
本文不讲解CXF的工具使用,只考虑我们在java程序中如何调用该工具来生成java代码,这种运用情形在插件开发中是常见的。
思路:
1.首先考虑到:Runtime.getRutime().excut(String[]),
经过简单测验,我没有通过,总是有错。暂时否决。
2.查询CXF java 2 WSDLAPI:找到类 org.apache.cxf.tools.java2ws.JavaToWS.
这个类就是CXF命令行工具的执行类,找到它就好解决了。简单代码如下:
JavaToWS javaToWS = new JavaToWS(args);
try {
javaToWS.run();
} catch (Exception e) {
e.printStackTrace();
}
运行,成功!
附件具体测试类:
package com.test.java2wsdl; public class Hello {
public String echo(String name){
return "echo: "+name;
}
}
package com.test.java2wsdl; import org.apache.cxf.tools.java2ws.JavaToWS;
/**
* @description 使用CXF工具将Java类生成WSDL
* @author zhu_qhua
*/
public class Java2WSDL {
private Class<?> className;
public String[] args1,args2,args3;
/**
* 构造函数
* @param args 要生成WSDL的Java类
*/
public Java2WSDL(Class<?> className) {
this.className = className; //根据Hello.class生成Hello.wsdl,生成的wsdl文件放在resource目录下
args1=new String[]{"-wsdl","-d","./resource",this.className.getName()};
//根据Hello.class生成Hello.wsdl,生成的文件放在根目录下的.example下
args2=new String[]{"-wsdl","-cp", "./example",this.className.getName()};
// 根据Hello.class生成wsdl文件,文件命名为myHello.wsdl,放在根目录下
args3=new String[]{"-o","myHello.wsdl","-wsdl",this.className.getName()};
}
/**
* 构造函数
* @param className 要生成WSDL的Java类
* @param wsdlFileName 要生成WSDL的文件名称(不包含扩展名)
*/
public Java2WSDL(Class<?> className,String wsdlFileName) {
this.className = className; //根据Hello.class生成Hello.wsdl,生成的wsdl文件放在resource目录下
args1=new String[]{"-wsdl","-d","./resource",this.className.getName()};
//根据Hello.class生成Hello.wsdl,生成的文件放在根目录下的.example下
args2=new String[]{"-wsdl","-cp", "./example",this.className.getName()};
// 根据Hello.class生成wsdl文件,文件命名为myHello.wsdl,放在根目录下
args3=new String[]{"-o",wsdlFileName+".wsdl","-wsdl",this.className.getName()};
} public void java2WSDL(String[] args){
JavaToWS javaToWS = new JavaToWS(args);
try {
javaToWS.run();
} catch (Exception e) {
e.printStackTrace();
}
} public static void main(String[] args) {
Java2WSDL java2WSDL = new Java2WSDL(Hello.class);
java2WSDL.java2WSDL(java2WSDL.args1);
}
}
调用CXF工具 生成 WSDL【转】的更多相关文章
- WebService -- Java 实现之 CXF ( 使用CXF工具生成client 程序)
1. 下载CXF 工具解压到磁盘 2.添加工具bin目录到PATH环境变量 3.创建一个CXF client新项目 4. run -> cmd 到指定目录,并运行工具目录下的批处理 “wadl2 ...
- gsoap工具生成wsdl接口 注意事项
wsdl是通过wsdl文件作为不同应用的通信接口,所以如何生成wsdl语言很重要,但是很多时候我们发现自己编写的头文件通过gsoap工具soapcpp2.exe从头文件中无法正常生成对应的wsdl语言 ...
- cxf webservice 生成wsdl方法参数名称为arg0问题
在通过cxf生成webservice服务时,如果你是用ServerFactoryBean,那么在生成wsdl时,方法的参数名称会被自动命名为arg0,arg1...,如: <xsd:comple ...
- 使用java的wsimport.exe工具生成wsdl的客户端代码
在jdk的bin目录下有一个wsimport.exe的工具,使用该工具可以根据wsdl地址生成java的客户端代码. 常用命令如下: wsimport -keep -d d:\ -s d:\src ...
- 使用java的wsimport.exe生成wsdl的客户端代码【转】
使用java的wsimport.exe工具生成wsdl的客户端代码 wsimport -keep -d d:\ -s d:\src -p com.map -verbose http://192.168 ...
- 根据wsdl,apache cxf的wsdl2java工具生成客户端、服务端代码
根据wsdl,apache cxf的wsdl2java工具生成客户端.服务端代码 apache cxf的wsdl2java工具的简单使用: 使用步骤如下: 一.下载apache cxf的包,如apac ...
- webService学习之路(三):springMVC集成CXF后调用已知的wsdl接口
webService学习之路一:讲解了通过传统方式怎么发布及调用webservice webService学习之路二:讲解了SpringMVC和CXF的集成及快速发布webservice 本篇文章将讲 ...
- webservice 服务端例子+客户端例子+CXF整合spring服务端测试+生成wsdl文件 +cxf客户端代码自动生成
首先到CXF官网及spring官网下载相关jar架包,这个不多说.webservice是干嘛用的也不多说. 入门例子 模拟新增一个用户,并返回新增结果,成功还是失败. 大概的目录如上,很简单. Res ...
- springMVC集成CXF后调用已知的wsdl接口
本文转载自:https://www.cnblogs.com/xiaochangwei/p/5400303.html 本篇文章将讲解SpringMVC+CXF环境下,怎么调用其他系统通过webServi ...
随机推荐
- Install Solr+tomcat
1. chose the release you want: http://archive.apache.org/dist/lucene/solr/. 1) copy [solr_home]/dist ...
- 取td里面的内容
var rowLength = document.getElementById("table名字").rows.length; for(var i=0;i<rowLeng ...
- Linux和Windows下查看、设置环境变量的比较
[一]查看环境变量: 1.windows 查看所有的变量:set 范例:>set 查看某个变量的值:set 环境变量名 范例: >set JAVA_HOME ...
- JSP标准标签库(JSTL)之核心标签(下)
前面记录了核心标签的前几种,现在来接着记录. 七.<c:import>标签 使用<c:import>标签可以包含一个FTP服务器中不同的网页内容.语法格式: <c:i ...
- JS,Jquery,ExtJs不同脚本动态创建DOM对象
好久不来写东西了,这段时间太慢了,闲了下来看了几篇文章,觉得很好,同时也许咱们大家都能遇到,所以就把它记录下来... 简单使用JavaScript.JQuery.ExtJs进行DOM对象创建的测试,主 ...
- 20+ 个很有用的 jQuery 的 Google 地图插件
转自:http://www.oschina.net/translate/20-useful-jquery-google-maps-plugins Google 地图在寻找我们想要了解的商店或者其它有趣 ...
- 虚拟机Ubuntu14/15启用root用户登录
1. 为root用户设置密码 sudo passwd root 需要先输入一次当前用户的登陆密码,然后输入两次root用户的密码(自己设置). 2. 切换至root用户 sudo -s 3. 编辑登陆 ...
- Kali Linux Web 渗透测试视频教程— 第四课 google hack 实战
Kali Linux Web 渗透测试— 第四课 google hack 实战 文/玄魂 目录 shellKali Linux Web 渗透测试— 第四课 google hack 实战 课程目录 Go ...
- NABCD竞争性需求分析
1. Need 需求 市面上关于各类记事本,时钟显示程序,图片显示程序,日历程序有很多,但是它们大多是零散的软件,不利于现在高集成的时代,我们所做的就是将各种功能合起来. 2. Approach ...
- Hadoop:Windows 7 32 Bit 编译与运行
所需工具 1.Windows 7 32 Bit OS(你懂的) 2.Apache Hadoop 2.2.0-bin(hadoop-2.2.0.tar.gz) 3.Apache Hadoop 2.2.0 ...