【发布时间】:2011-01-30 17:20:43
【问题描述】:
我使用 wsimport 命令行工具来创建类,但我想从 java 代码中创建。有什么想法吗?
【问题讨论】:
-
您能说一下为什么需要这个吗?
-
因为我需要制作基于 WSDL 的动态服务调用程序。所以我需要动态创建网络服务类
标签: java web-services wsdl wsdl2java
我使用 wsimport 命令行工具来创建类,但我想从 java 代码中创建。有什么想法吗?
【问题讨论】:
标签: java web-services wsdl wsdl2java
您可以通过编程方式使用wsimport ant task。
您可以通过使用任务类 - com.sun.tools.ws.ant.WsImport 来做到这一点。实例化它,设置它的属性(在任务文档中定义),然后调用execute() 方法。
【讨论】:
您尝试实现的不是典型的 Java Web 服务流程。但是您可以通过基于动态 JVM 的 Groovy language 使用 GroovyWS 模块来实现这一点。
【讨论】:
可以调用WsImportmain()方法:
import com.sun.tools.ws.WsImport;
...
String[] args = {"put", "your", "arguments", "here"};
WsImport.main(args);
我认为这就是Ant task 所做的。
更新:我不确定你想做什么(我不认为你想生成源代码并在运行时编译它)。
如果问题实际上是关于进行动态调用,那么 JAX-WS 的动态调用接口 (DII) 就是 javax.xml.ws.Dispatch 对象。检查JAX-WS's dynamic Dispatch interface。
【讨论】: