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– Mykola Golubyev2010-03-23 09:36:57 +00:00Commented Mar 23, 2010 at 9:36
-
1cause I need to make dynamic service invoker based on the WSDL. So I need dynamic creating of web service classesMilan– Milan2010-03-23 09:38:01 +00:00Commented Mar 23, 2010 at 9: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.
1 Comment
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.
Comments
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.