In JAX-WS wsimport tool example, you can generate the server-side artifact and client-side artifact of web services using local WSDL file.
1. Overview of JAX-WS wsimport tool example
In this, JAX-WS wsimport tool example post you learn about how to generate client side and server side artifact for your web services. It is your choice, how you start developing web services, which appraoch you follow, either Top-down ( contract-first ) or Bottom UP ( java code first). Which is better approach is completely depend on your preference, level of your expertise in java web services and nature of services.
1. What is wsimport tool in JAX-WS?
wsimport tool on command line and help to generate JAX-WS wsimport client example.
type: wsimport –help
E:\>cd mysoftkey E:\mysoftkey>wsimport --help unrecognized parameter --help Usage: wsimport [options]where [options] include: -b specify jaxws/jaxb binding files or additional schemas (Each must have its own -b) -B Pass this option to JAXB schema compiler -catalog specify catalog file to resolve external entity references supports TR9401, XCatalog, and OASIS XML Catalog format. -classpath specify where to find user class files and wsimport extensions -cp specify where to find user class files and wsimport extensions -d specify where to place generated output files -encoding specify character encoding used by source files -extension allow vendor extensions - functionality not specified by the specification. Use of extensions may result in applications that are not portable or may not interoperate with other implementations -help display help -httpproxy: set a HTTP proxy. Format is [user[:password]@]proxyHost:proxyPort (port defaults to 8080) -J pass this option to javac -keep keep generated files -p specifies the target package -quiet suppress wsimport output -s specify where to place generated source files -target generate code as per the given JAXWS spec version Defaults to 2.2, Accepted values are 2.0, 2.1 and 2.2 e.g. 2.0 will generate compliant code for JAXWS 2.0 spec -verbose output messages about what the compiler is doing -version print version information -fullversion print full version information -wsdllocation @WebServiceClient.wsdlLocation value -clientjar creates the jar file of the generated artifacts along with the WSDL metadata required for invoking the web service. -generateJWS generate stubbed JWS implementation file -implDestDir specify where to generate JWS implementation file -implServiceName local portion of service name for generated JWS implementation -implPortName local portion of port name for generated JWS implementation Extensions: -XadditionalHeaders map headers not bound to request or response message to Java method parameters -Xauthfile file to carry authorization information in the format http://username:password@example.org/stock?wsdl -Xdebug print debug information -Xno-addressing-databinding enable binding of W3C EndpointReferenceType to Java -Xnocompile do not compile generated Java files -XdisableAuthenticator disable Authenticator used by JAX-WS RI, -Xauthfile option will be ignored if set -XdisableSSLHostnameVerification disable the SSL Hostname verification while fetching wsdls Examples: wsimport stock.wsdl -b stock.xml -b stock.xjb wsimport -d generated http://example.org/stock?wsdl E:\mysoftkey>;
2. Why wsimport tool?
wsimport
tool is used for 2 different purpose:
- To generate the client side artifact ( source code) to invoke webservices and
- To generate server side artifact to expose web service in Top-Down approach (contract-first) webservice.
3. Client Side Artifact: Generate java class using wsdl
To generate the client side artifact using existing WSDL which is exposed as web service. You can access in browser before calling from terminal. you can check this whether WSDL is accessible or not. once its accessible then you can generate wsimport example with local WSDL file.
For example, we have a hello web service exposed/implemented and WSDL URL: http://localhost:8080/HelloWorldWS/HelloWorldWS?wsdl
wsimport example with local wsdl file
You can generate your java JAX-WS wsimport client example by using JAX-WS wsimport tool example.
wsimport -keep -verbose http://localhost:8080/HelloWorldWS/HelloWorldWS?wsdl
console output
E:\mysoftkey>wsimport -keep -verbose http://localhost:8080/HelloWorldWS/HelloWorldWS?wsdl parsing WSDL... Generating code... com\mysoftkey\jaxws\hellowold\HelloWorldImpl.java com\mysoftkey\jaxws\hellowold\HelloWorldImplService.java Compiling code... javac -d E:\mysoftkey\. -classpath C:\Program Files\Java\jdk1.8.0_77/lib/tools.jar;C:\Program Files\Java\jdk1.8.0_77/classes -Xbootclasspath/p:C:\Program Files\Java\jdk1.8.0_77\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_77\jre\lib\rt.jar E:\mysoftkey\.\com\mysoftkey\jaxws\hellowold\HelloWorldImpl.java E:\mysoftkey\.\com\mysoftkey\jaxws\hellowold\HelloWorldImplService.java
directory structur of generated client source code
E:\mysoftkey:. └───com └───mysoftkey └───jaxws └───hellowold HelloWorldImpl.class HelloWorldImpl.java HelloWorldImplService.class HelloWorldImplService.java
Copy Generated source code (com
folder) in your Eclipse IDE or any IDE of your choice in client project under src folder. Now you are ready to write client by using this, you can visit how to write Java webservice client using WSDL
4. Server Side Artifact: using wsdl
WSDL is used to generate the server side artifact also using wsimport.
5. Reference
For more details you can visit wsimport tool
Thanks for visiting this page for wsimport example.
Happy Learning 🙂 for wsimport example with local wsdl file, you can visit JAX-WS web services tutorial page.
Your comments are welcome to improve this post.