ตอนที่แล้ว เขียนวิธีการสร้าง jax-ws แล้ว คราวนี้เรามาดูวิธีการเรียกกันครับ ผมทำบน maven เหมือนเคยครับ โดยทำดังนี้ครับ
1. Config Maven เพื่อไปอ่าน wsdl file จาก url มาแล้วทำการ generate stub ไว้สำหรับเรียก Web Service
2. หลังจากนั้นไปรันที่ command line mvn:compile maven ก็จะทำการสร้าง stub ของ Web Service นั้นขึ้นมาให้ครับ แล้วสามารถนำไปใช้งานได้เลย (*พอทำเสร็จแล้ว เอาส่วนที่เป็น Config wsdlurl ออกน่ะครับ จะได้ไม่ต้องทำการไป generate ทุกครั้ง)
3. มาดูส่วนที่เป็น Java Class กัน
4. ตัวอย่างที่กล่าวมาเป็นวิธีการเรียกแบบ Sync Mode ครับ ยังมีวิธีการเรียกแบบ Async อีกสองแบบ จะพูดถึงในครั้งต่อไปครับ
1. Config Maven เพื่อไปอ่าน wsdl file จาก url มาแล้วทำการ generate stub ไว้สำหรับเรียก Web Service
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlUrls>
<wsdlUrl>
http://localhost:8080/webservice-sample/helloService?wsdl <-- บอกว่าจะไปเอา wsdl file จากที่ไหนมาครับ </wsdlUrl>
</wsdlUrls>
<packageName>tutorial.sample.jaxws.helloclient</packageName> <-- จำสร้าง stub ไว้ที่ package ไหน </configuration>
</execution>
</executions>
</plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlUrls>
<wsdlUrl>
http://localhost:8080/webservice-sample/helloService?wsdl <-- บอกว่าจะไปเอา wsdl file จากที่ไหนมาครับ </wsdlUrl>
</wsdlUrls>
<packageName>tutorial.sample.jaxws.helloclient</packageName> <-- จำสร้าง stub ไว้ที่ package ไหน </configuration>
</execution>
</executions>
</plugin>
2. หลังจากนั้นไปรันที่ command line mvn:compile maven ก็จะทำการสร้าง stub ของ Web Service นั้นขึ้นมาให้ครับ แล้วสามารถนำไปใช้งานได้เลย (*พอทำเสร็จแล้ว เอาส่วนที่เป็น Config wsdlurl ออกน่ะครับ จะได้ไม่ต้องทำการไป generate ทุกครั้ง)
3. มาดูส่วนที่เป็น Java Class กัน
HelloService service = new HelloService();
Hello port = service.getHelloPort();
System.out.println(port.sayHello("Duke"));
Hello port = service.getHelloPort();
System.out.println(port.sayHello("Duke"));
4. ตัวอย่างที่กล่าวมาเป็นวิธีการเรียกแบบ Sync Mode ครับ ยังมีวิธีการเรียกแบบ Async อีกสองแบบ จะพูดถึงในครั้งต่อไปครับ