Use Maven to Generate all Stubs using "wsimport" utility . After generating the webservice you can call the service using Java class. This method will can be easily reused , you just have to use different wsdl url every time you have to consume the webservice and modify the java code , it's light weight and no need to use any third party libraries . So you will need the following
First step is to copy the wsdl file and place it in the src/wsdl directory
Setup the pom.xml pom.xml
Folder : Project root dir
run "mvn generate-sources" command , this will generate the files in src/main/java folder . Its specified as <sourceDestDir>src/main/java</sourceDestDir> in pom.xml
Stubs are generated ,You can call the webservice with following Java program
Note
If your webservice requires authentication , you can set that up as shown below
- wsdl file
- pom.xml
- Java Class
First step is to copy the wsdl file and place it in the src/wsdl directory
Setup the pom.xml pom.xml
Folder : Project root dir
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>com.myws.testconsumews</groupId> <artifactId>TestWSConsume</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>Test Webservice</name> <url>http://maven.apache.org</url> <build> <plugins> <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxws-maven-plugin</artifactId> <version>1.7</version> <executions> <execution> <id>generate-stubs</id> <phase>generate-sources</phase> <goals> <goal>wsimport</goal> </goals> <configuration> <wsdlDirectory>src/wsdl</wsdlDirectory> <wsdlFiles> <wsdlFile>myservice.wsdl</wsdlFile> </wsdlFiles> <wsdlLocation>http://localhost:8080/TestWS/myservice?wsdl</wsdlLocation> <sourceDestDir>src/main/java</sourceDestDir> <packageName>com.myservice.proxy</packageName> </configuration> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.2</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build> </project>
run "mvn generate-sources" command , this will generate the files in src/main/java folder . Its specified as <sourceDestDir>src/main/java</sourceDestDir> in pom.xml
Stubs are generated ,You can call the webservice with following Java program
package com.myservice.client; import com.myservice.proxy.MyService; import com.myservice.proxy.MyServiceService; public class CallMyService { public static void main(String[] args) { MyServiceService mss = new MyServiceService(); MyService serv = mss.getMyServicePort(); System.out.println(serv.sayHello()); } }Now that was simple right . So what if you want to generate numerous webservice clients for testing and scripting needs you can simply reuse the pom.xml ( change the wsdl file ) , generate the stubs and change the program to call the new webservice .
Note
If your webservice requires authentication , you can set that up as shown below
((BindingProvider) serv).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, userName); ((BindingProvider) serv).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, passWord);Cheers, hope that was helpful
No comments:
Post a Comment