Untuk membangun aplikasi yang baik dan berskala dibutuhkan IDE yang mendukung. Pada bab ini IDE yang digunakan adalah Eclipse Java EE. Seperti halnya Visual Studio, Eclipse juga dipersenjatai dengan plugin-plugin. Hal tersebut dapat memangkas waktu development project berskala.
Pada bab ini dengan menggunakan wizard pada Eclipse, akan dibangun server dan klien untuk test webservice.
POLITEKNIK POS INDONESIA
2. Tentukan directory tempat project Anda
3. File>New>Dynamic Web Project
Tentukan directory tempat project Anda, default adalah workspace, OK
File>New>Dynamic Web Project
4. Project Name: JavaWS
Target Runtime: Apache Tomcat v7.0 Dynamic web module version: 2.5 Next>Next>Finish
Project Name: JavaWS
Target Runtime: Apache Tomcat v7.0 web module version: 2.5
POLITEKNIK POS INDONESIA
5. Perhatikan jendela Project Explorer 6. Pada Java
Resources-Perhatikan jendela Project Explorer
7. Beri nama package, alamat blog Anda
Contoh:com.kxm.ws
Finish
8. Selanjutnya Anda membuat kelas untuk dihubungkan dengan file XML yang nantinya dikonsumsi oleh klien.
9. Pada package tadi, klik kanan
Beri nama package, alamat blog Anda
Selanjutnya Anda membuat kelas untuk dihubungkan dengan file XML yang nantinya dikonsumsi oleh klien.
Pada package tadi, klik kanan, New>class
POLITEKNIK POS INDONESIA
10. Beri nama class: CobaService 11. Isikan
1. package com.kxm.ws; 2.
3. public class CobaService { 4. public String coba(){ 5.
6. return "web service OK" 7. }
8. 9.
10. public int kali(
11. return prm1 * prm2; 12. }
13. }
12. Jika Anda perhatikan, langkah yang dilalui hampir sama dengan bab sebelumnya ketika menggunakan Visual Studio.
13. Langkah selanjutnya adalah mengenerate wizard)
14. Pada jendela Project Explorer, Project Anda, Java Resources klik kanan. New>Other>Web Services>Web service
CobaService, klik finish
CobaService { String coba(){
"web service OK";
kali(int prm1, int prm2){ prm1 * prm2;
Jika Anda perhatikan, langkah yang dilalui hampir sama dengan bab sebelumnya ketika menggunakan Visual Studio.
Langkah selanjutnya adalah mengenerate webservice, file wsdl (masih melalui
Project Explorer, Project Anda, Java Resources klik kanan. New>Other>Web Services>Web service
Jika Anda perhatikan, langkah yang dilalui hampir sama dengan bab sebelumnya
file wsdl (masih melalui
15. Web service type: Bottom up, artinya Anda mengenerate file wsdl dari class yang ada.
16. Pada service implementation: 17. Configuration
Server runtime: Tomcat v7.0 server Web service runtime: Apache Axis Service project: JavaWS
18. Pada server, arahkan slider sehingga Test service 19. Pada client, arahkan slider sehingga Test client 20. Publish the web service
Web service type: Bottom up, artinya Anda mengenerate file wsdl dari class yang
Pada service implementation: com.kxm.ws.CobaService (package.class)
Server runtime: Tomcat v7.0 server Web service runtime: Apache Axis Service project: JavaWS
Pada server, arahkan slider sehingga Test service Pada client, arahkan slider sehingga Test client
web service
Web service type: Bottom up, artinya Anda mengenerate file wsdl dari class yang
21. Klik next
22. Pilih semua method: coba dan kali 23. Next
24. Pada server startup, klik start server
25. Next
26. Test Web Service,
coba dan kali dan wsdl file: CobaService.wsdl
Pada server startup, klik start server
POLITEKNIK POS INDONESIA
27. Perhatikan browser default Anda url:
http://127.0.0.1:9704/wse/wsexplorer/wsexplorer.jsp?org.eclipse.wst.ws.explorer =0
Perhatikan browser default Anda
http://127.0.0.1:9704/wse/wsexplorer/wsexplorer.jsp?org.eclipse.wst.ws.explorer http://127.0.0.1:9704/wse/wsexplorer/wsexplorer.jsp?org.eclipse.wst.ws.explorer
Selanjutnya pada IDE Eclipse, dialog Web Service, klik Next untuk mengenerate project klien (secara otomatis akan membuatkan project JavaWSClient untuk Anda).
IDE Eclipse, dialog Web Service, klik Next untuk mengenerate project klien (secara otomatis akan membuatkan project JavaWSClient untuk IDE Eclipse, dialog Web Service, klik Next untuk mengenerate project klien (secara otomatis akan membuatkan project JavaWSClient untuk
2 Akses oleh klien
Telah dijelaskan di atas, IDE Eclipse telah secara otomatis mengenerate project untuk klien.
Berikut contoh kode hasil generate TestClient.jsp
<%@page contentType="text/html;charset=UTF
<HEAD>
<TITLE>Web Services Test Client
</HEAD>
<FRAMESET COLS="220,*"> <FRAME SRC="Method.jsp" NAME=
SCROLLING="yes" FRAMEBORDER="1"
<FRAMESET ROWS="80%,20%">
<FRAME SRC="Input.jsp" NAME="inputs"
SCROLLING="yes" FRAMEBORDER="1" <%
Telah dijelaskan di atas, IDE Eclipse telah secara otomatis mengenerate project untuk
Berikut contoh kode hasil generate
"text/html;charset=UTF-8"%><HTML>
Web Services Test Client</TITLE>
="methods" MARGINWIDTH="1" MARGINHEIGHT="1" "1">
"inputs" MARGINWIDTH="1" MARGINHEIGHT="1" "1">
Telah dijelaskan di atas, IDE Eclipse telah secara otomatis mengenerate project untuk
POLITEKNIK POS INDONESIA
StringBuffer resultJSP = new resultJSP.append("?");
java.util.Enumeration resultEnum = request.getParameterNames(); (resultEnum.hasMoreElements()) {
Object resultObj = resultEnum.nextElement(); resultJSP.append(resultObj.toString()).append( Obj.toString())).append("&");
} %>
<FRAME SRC="<%=org.eclipse.jst.ws.util.JspUtils.markup(resultJSP.toString())
NAME="result" MARGINWIDTH="1"
</FRAMESET> <NOFRAMES> <BODY>
The Web Services Test Client requires a browser that
</BODY> </NOFRAMES> </FRAMESET> </HTML>
Skenario berikutnya adalah jika klien ingin mengakses web service, kurang lebih klien harus memiliki kode seperti dijelaskan pada bab sebelumnya (dengan menggunakan kelas SoapClient).
Namun sebelum itu perlu diketahui kemana klien harus mengakses alamat wsdl?
Untuk itu Anda harus memberi tahu alamat wsdl. Wsdl dapat Anda lihat pada struktur project.
Perhatikan pada project JavaWS
Jadi wsdl dapat diakses pada:
StringBuffer("Result.jsp");
java.util.Enumeration resultEnum = request.getParameterNames();while (resultEnum.hasMoreElements()) {
Object resultObj = resultEnum.nextElement();
resultJSP.append(resultObj.toString()).append("=").append(request.getParameter(result );
org.eclipse.jst.ws.util.JspUtils.markup(resultJSP.toString()) "1" MARGINHEIGHT="1" SCROLLING="yes" FRAMEBORDER
The Web Services Test Client requires a browser that supports frames.
Skenario berikutnya adalah jika klien ingin mengakses web service, kurang lebih klien harus memiliki kode seperti dijelaskan pada bab sebelumnya (dengan menggunakan
tu perlu diketahui kemana klien harus mengakses alamat wsdl?
Untuk itu Anda harus memberi tahu alamat wsdl. Wsdl dapat Anda lihat pada struktur
Perhatikan pada project JavaWS->WebContent->wsdl
Jadi wsdl dapat diakses pada: http://localhost:8081/JavaWS/wsdl/CobaService.wsdl
).append(request.getParameter(result
org.eclipse.jst.ws.util.JspUtils.markup(resultJSP.toString())%>"
FRAMEBORDER="1">
Skenario berikutnya adalah jika klien ingin mengakses web service, kurang lebih klien harus memiliki kode seperti dijelaskan pada bab sebelumnya (dengan menggunakan
tu perlu diketahui kemana klien harus mengakses alamat wsdl?
Untuk itu Anda harus memberi tahu alamat wsdl. Wsdl dapat Anda lihat pada struktur
Atau melihat Isi file CobaService.wsdl <?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://ws.kxm.com"
xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="http://ws.kxm.com"
xmlns:intf="http://ws.kxm.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!--WSDL created by Apache Axis version: 1.4 Built on Apr 22, 2006 (06:55:48 PDT)-->
<wsdl:types>
<schema elementFormDefault="qualified" targetNamespace="http://ws.kxm.com"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="kali">
<complexType>
<sequence>
<element name="prm1" type="xsd:int"/>
<element name="prm2" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="kaliResponse">
<complexType>
<sequence>
<element name="kaliReturn" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="coba">
<complexType/>
</element>
<element name="cobaResponse">
<complexType>
<sequence>
<element name="cobaReturn" type="xsd:string"/>
</sequence>
</complexType>
</element>
</schema> </wsdl:types>
<wsdl:message name="cobaResponse">
<wsdl:part element="impl:cobaResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="kaliRequest">
<wsdl:part element="impl:kali" name="parameters">
POLITEKNIK POS INDONESIA
</wsdl:message>
<wsdl:message name="kaliResponse">
<wsdl:part element="impl:kaliResponse" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="cobaRequest">
<wsdl:part element="impl:coba" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:portType name="CobaService">
<wsdl:operation name="kali">
<wsdl:input message="impl:kaliRequest" name="kaliRequest">
</wsdl:input>
<wsdl:output message="impl:kaliResponse" name="kaliResponse">
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="coba">
<wsdl:input message="impl:cobaRequest" name="cobaRequest">
</wsdl:input>
<wsdl:output message="impl:cobaResponse" name="cobaResponse">
</wsdl:output>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="CobaServiceSoapBinding" type="impl:CobaService">
<wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="kali">
<wsdl:input name="kaliRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="kaliResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="coba">
<wsdlsoap:operation soapAction=""/>
<wsdl:input name="cobaRequest">
<wsdlsoap:body use="literal"/>
</wsdl:input>
<wsdl:output name="cobaResponse">
<wsdlsoap:body use="literal"/>
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="CobaServiceService">
<wsdl:port binding="impl:CobaServiceSoapBinding" name="CobaService">
<wsdlsoap:address
location="http://localhost:8081/JavaWS/services/CobaService"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
Jadi wsdl dapat diakses pada:
POLITEKNIK POS INDONESIA
Sehingga kode untuk php kurang lebih: 1. Buat file php pada direktori latihan/ws1 2. Beri nama: javatestws.php
3. Isikan kode:
1. <?php
2. // test je java
3. // lihat struktur WebContent
4. //$wsdl = 'http://localhost:8081/JavaWS/wsdl/CobaService.wsdl';
5. //lihat stuktur wsdl
6. $wsdl="http://localhost:8081/JavaWS/services/CobaService?wsdl"; 7. $client2 = new SoapClient ( $wsdl );
8. 9. $hasil = $client2->coba (); 10. echo $hasil->cobaReturn; 11. 12. echo '</br>'; 13.
14. $hasil2 = $client2->kali ( array ( 15. 'prm1' => 5,
16. 'prm2' => 20 17. ) );
18. echo $hasil2->kaliReturn; // lihar struktur CobaService.wsdl di project javaEE Anda
19. // print_r( $client2->coba());
20.
21. ?>
4. Jalankan pada browser: http://localhost/latihan/ws1/javatestws.php
TUGAS:
Kelompok: Buat makalah mengenai web service pada Java, meliputi: • Sejarah
• Arsitektur
• Perkembangan, pengguna • Keamanan
POLITEKNIK POS INDONESIA BAB XI
TIK:
Mahasiswa dapat Memahami penggunaan REST, JSON sebagai web service Pokok Bahasan:
• REST, JSON Sub Pokok Bahasan:
• Sekilas REST • JSON