在做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 java代码生成 wsdl文件 ,wsdl文件生成 java代码,相关博文: http://blog.csdn.net/dream_broken/article/details/35331949
利用注解修改webservice生成wsdl的服务名称,命名空间,返回值,调用方法。加强安全性。代码完整,包括服务端和客户端两个项目
利用wsdl2java工具和SoapUI工具生成webservice的客户端代码 Java实现登陆验证调用 压缩包里包括需要的所有文件,供需要的同学使用 1.apache-cxf-3.3.7 2.SoapUI 5.4.0-EB 3.生成代码的教程 4.获取service调用的...
主要介绍了Apache CXF如何把wsdl生成java代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Ⅰ)调用CXF提供的wsdl2java工具,根据WSDL文档生成相应的Java代码(任何语言实现web service都要暴露WSDL文档); Ⅱ)找到wsdl2java所生成的类中一个继承了Service的类(该类的实例可当工厂使用); Ⅲ)调用...
Eclipse根据wsdl文件自动生成webservice client图解,以及调用示例,附测试项目。源码示例,包括两个wsdl文件
本项目演示了如何在Springboot中实现apachecxf客户端,以及如何为客户端调用生成wsdltojava。 Springboot-apachecxf-jaxws 示例 此应用程序展示了如何使用 apachecxf jaxws 创建客户端以及如何从 wsdl 生成 wsdl2...
apache-cxf-2.7.2所需要的项目,解压后可以直接使用,生成wsdl2java,根据wsdl地址生成java类,可以在本地直接调用
wsdl2java源码Camel-CXF SOAP 客户端演示(使用 2 路 SSL) 此存储库包含一个示例 Camel-CXF 项目,该项目演示了使用 2 向 SSL(客户端身份验证)的客户端 SOAP 请求/回复。 入门 首先,将此存储库克隆到您的本地...
cxf发布webservice,通过wsdl2java生成客户端,然后调用服务
这个代码例子是为了调用CXF提供的WS服务,所以先要下载“CXF和Spring结合的例子”,并将服务器(tomcat)运行起来,在利用本客户端测试,本客户端是根据服务端发布的WSDL文件,用wsdl2java直接生成java代码,加入到...
生成的内容并缓存端口引用,以通过简单的配置驱动机制加速您的soap服务端点调用。 WsdlToJava 命令 --------------- 这个插件提供了一种方便的方法来运行 wsdl2java 作为项目中的 grails 运行目标。 您需要将此插件...
例子中包含cxf的jar包,在调用服务器端方法时,首先要在cmd中,通过wsdl生成服务器端的接口、接口实现类等相关的javal类。 cmd WSDL2JAVA http://IP:8080/项目名/服务器端设置好的调用方法?方法名 如:wsdl2java ...
jaxws 的发布版本 可以用来调用wsdl 生成 java类 Apache CXF, CXF, Apache, the Apache feather logo are trademarks of The Apache Software Foundation.
JAVA如何调用wsdl过程详解java WSDL接口webService实现方式PHP调用wsdl文件类型的接口代码分享解析利用wsdl.exe生成webservice代理类的详解在PHP中利用wsdl创建标准webservice的实现代码Java调用CXF WebService接口...
该资源内容为webService 接口的java客户端调用代码生成工具;解压即可使用; 具体操作可查看内附readme
使用JAX-WS RI和JAXB的Apache CXF和SpringBoot的SOAP-Webservices-仅注释,绝对没有XML 作为Example SOAP-Service,我做了一些研究,但是毕竟(或因为?)几乎所有教程都使用了众所周知的 ,它是最好的用例。 在...
通常情况下得WS调用都是使用wsdl4j等生成静态的stub存根类,然后再调用webservice.但是这样的局限性很大,比如在流程引擎中,调用的WS可能都是在界面上配置的.这就要求需要我们动态的调用WS,只需要传入一个WSDL地址....
1.采用cxf集成Spring实现webservice接口的发布。...2.(调用一)用eclipse根据wsdl连接自动生成java代码实现接口的调用。 3.(调用二)用axis2实现接口调用。 4.开发环境:eclipse+jdk1.8+tomcat8.5
这是模拟企业用户的开发,在远程调用的时候客户端必须传入密码,这里通过cxf框架 的自定义拦截器实现jax-ws,jax-rs下次在学习下。 创建springboot项目: 导入起步依赖以及junit pom文件如下: org.spring...