File APIs for Java Developers
Manipulate DOC, XLS, PPT, PDF and many others from your application.
http://aspose.com/file-tools
The moose likes Web Services Certification (SCDJWS/OCEJWSD) and the fly likes  difference between wsimport and wsgen command Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Certification » Web Services Certification (SCDJWS/OCEJWSD)
Bookmark " difference between wsimport and wsgen command" Watch " difference between wsimport and wsgen command" New topic
Author

difference between wsimport and wsgen command

Abhay Agarwal
Ranch Hand

Joined: Feb 29, 2008
Posts: 1212
    
    1

Hi

Please let me know the difference between wsimport and wsgen commands.
For example -when to use which command ? what are the differentiating factors for these commands.

thanks


Oracle Java Web Service Developer (1z0-897), Oracle certified Java 7 Programmer, SCJA 1.0, SCJP 5.0, SCWCD 5.0, Oracle SQL Fundamentals I, CIW Certified Ecommerce specialist
Abhay Agarwal
Ranch Hand

Joined: Feb 29, 2008
Posts: 1212
    
    1

a search on google gives me below mentioned description

The wsimport tool
The wsimport tool reads a WSDL and generates all the required artifacts for web service development, deployment, and invocation. The wsimport tool supports the top-down approach to developing JAX-WS Web services, where you are starting from a wsdl.
The wsimport tool generated JAX-WS portable artifacts include Service Endpoint Interface (SEI), Service, Exception class mapped from wsdl:fault (if any), JAXB generated value types (mapped java classes from schema types) etc. These artifacts can be packaged in a WAR file with the WSDL and schema documents along with the endpoint implementation to be deployed.

The wsgen tool
The wsgen tool reads an existing web service implementation class (SIB) and generates the required JAX–WS portable artifacts for web service development and deployment. The wsgen tool can be used for bottoms-up approach, where you are starting from a service endpoint implementation (SIB) rather than a wsdl.

Can we say that wsgen and wsimport command generates same classes (same JAX-WS artifacts)?
Can we say that wsgen and wsimport command is used to generate both server and client side code ?
can wsgen command be used to generate a WSDL file ?

Thanks
Himai Minh
Ranch Hand

Joined: Jul 29, 2012
Posts: 800
    
    1

1. Can we say that wsgen and wsimport command generates same classes (same JAX-WS artifacts)?
2. Can we say that wsgen and wsimport command is used to generate both server and client side code ?
3. can wsgen command be used to generate a WSDL file ?


Correct me if I am wrong.
wsgen and wsimport generates JAX-WS artifacts from SBI and WSDL respectively.
If those JAX-WS artifacts do not exist, when the service is published using Endpoint.publish or web service container (Tomcat), those artifacts are dynamically generated.
If those artifacts exist (generated by wsgen), the Endpoint.publish does not generate those artifacts.

1. Yes. wsgen and wsimport generate request and response wrapper bean classes and the JAXB classes (XXX.class and XXXResponse.class).
However, wsgen generates the JAXB classes and put them in a jaxws folder. But wsimport does not put those classes in any folder instead in the current directory.
2. The JAX-WS artifacts generated can be used by both server and client side.
3. I think wsgen can be used to generate WSDL. Here is an example at http://www.mkyong.com/webservices/jax-ws/jax-ws-wsgen-tool-example/
Abhay Agarwal
Ranch Hand

Joined: Feb 29, 2008
Posts: 1212
    
    1

thanks for the reply.

 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: difference between wsimport and wsgen command