• Tidak ada hasil yang ditemukan

Apache Tomcat, Java, Web service

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

Dokumen terkait