I used wsimport command line tool for creating classses but I want to do it from the java code. Any idea?
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.
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.
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.