调用CXF工具 生成 WSDL

编程技术  /  houtizong 发布于 3年前   58

在做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);}}

  

 项目下载

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

留言需要登陆哦

技术博客集 - 网站简介:
前后端技术:
后端基于Hyperf2.1框架开发,前端使用Bootstrap可视化布局系统生成

网站主要作用:
1.编程技术分享及讨论交流,内置聊天系统;
2.测试交流框架问题,比如:Hyperf、Laravel、TP、beego;
3.本站数据是基于大数据采集等爬虫技术为基础助力分享知识,如有侵权请发邮件到站长邮箱,站长会尽快处理;
4.站长邮箱:[email protected];

      订阅博客周刊 去订阅

文章归档

文章标签

友情链接

Auther ·HouTiZong
侯体宗的博客
© 2020 zongscan.com
版权所有ICP证 : 粤ICP备20027696号
PHP交流群 也可以扫右边的二维码
侯体宗的博客