I used wsimport command line tool for creating classses but I want to do it from the java code. Any idea?
-
1Could you say why do you need this? – Mykola Golubyev Mar 23 '10 at 09:36
-
1cause I need to make dynamic service invoker based on the WSDL. So I need dynamic creating of web service classes – Milan Mar 23 '10 at 09:38
3 Answers
It is possible to call the WsImport
main()
method:
import com.sun.tools.ws.WsImport;
...
String[] args = {"put", "your", "arguments", "here"};
WsImport.main(args);
I think that this is what the Ant task does.
Update: I'm not sure to understand what you're trying to do (and I don't think that you want to generate source code and compile it during runtime).
If the question is actually about doing dynamic invocation, JAX-WS's dynamic invocation interface (DII) is the javax.xml.ws.Dispatch
object. Check JAX-WS's dynamic Dispatch interface.

- 562,542
- 136
- 1,062
- 1,124
-
I've been trying to understand what he's trying to do for a while, and I finally I came to the conclusion that he wants something like http://www.soapclient.com/soaptest.html – Bozho Mar 23 '10 at 12:36
You can use the wsimport ant task programatically.
You can do this by using the task class - com.sun.tools.ws.ant.WsImport
. Instantiate it, set its properties (as defined on the task documentation), and call the execute()
method.

- 588,226
- 146
- 1,060
- 1,140
What you are trying to achieve is not typical Java Web Services flow. But you can achieve this with dynamic JVM based Groovy language using GroovyWS module.

- 57,943
- 15
- 89
- 102