Mungkin temen-temen sudah sering mendengar istilah Web Services khan? Nah, dengan menggunakan teknologi ini, ternyata mimpi kita untuk membangun aplikasi multi-platform bisa menjadi kenyataan.
Kali ini aku akan menjelaskan cara mengintegrasikan teknologi PHP dan J2ME menggunakan teknologi Web Services. Pada sisi PHP, aku menggunakan pustaka NuSOAP, sedangkan di J2ME aku menggunakan pustaka KSOAP2.
Berikut code PHP untuk membangun server Web Services menggunakan NuSOAP (aritmatika.php):
<?php // include NuSOAP library require_once('nusoap-0.7.3/lib/nusoap.php'); // Create Web Service Server $server = new soap_server; $server->configureWSDL('aritmatikawsdl', 'urn:aritmatikawsdl'); // Register Services (Add) $server->register('add', // method name array('num1' => 'xsd:string', 'num2' => 'xsd:string'), // input parameters array('result' => 'xsd:string'), // output parameters 'urn:aritmatikawsdl', // namespace 'urn:aritmatikawsdl#add', // soapaction 'rpc', // style 'encoded', // use 'Add num1 and num2' // documentation ); // Define Services function add ($num1, $num2) { return $num1 + $num2; } // Register Services (Substract) $server->register('substract', // method name array('num1' => 'xsd:string', 'num2' => 'xsd:string'), // input parameters array('result' => 'xsd:string'), // output parameters 'urn:aritmatikawsdl', // namespace 'urn:aritmatikawsdl#substract', // soapaction 'rpc', // style 'encoded', // use 'Substract num1 and num2' // documentation ); // Define Services function substract ($num1, $num2) { return $num1 - $num2; } $server->service($HTTP_RAW_POST_DATA); ?>
Berikut code J2ME untuk membangun client Web Services menggunakan KSOAP2:
package org.secangkirkopipanas.me.nusoap; import javax.microedition.midlet.*; import javax.microedition.lcdui.*; import org.ksoap2.*; import org.ksoap2.transport.*; import org.ksoap2.serialization.SoapObject; import org.ksoap2.serialization.SoapSerializationEnvelope; import org.xmlpull.v1.XmlPullParserException; /** * @author secangkirkopipanas */ public class NuSOAPClient extends MIDlet { private Display display; private String url = "http://localhost:5000/php/nusoap-service/aritmatika.php"; private TextBox textbox = null; public NuSOAPClient() { display = Display.getDisplay(this); } public void startApp() { try { testWebService(); } catch (Exception ex) { System.out.println(ex); } } public void pauseApp() { } public void destroyApp(boolean unconditional) { } public void testWebService() throws Exception { StringBuffer stringBuffer = new StringBuffer(); TextBox textBox = null; // First WebService - echos name that is passed in, in this case 'Robertus Lilik Haryanto' String method = "add"; SoapObject client = new SoapObject(url, method); client.addProperty("num1", "5"); client.addProperty("num2", "5"); HttpTransport transport = new HttpTransport(url); // Creating the Soap Envelope SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); envelope.bodyOut = client; // Call the WebService try { transport.call(method, envelope); } catch(XmlPullParserException io) { System.err.println(io); } // Format the Result String result = envelope.getResponse().toString(); stringBuffer.append(result); // display results in textbox textBox = new TextBox("Hasil dari 5 + 5 adalah", stringBuffer.toString(), 1024, 0); display.setCurrent(textBox); } }
Jika temen-temen sudah berhasil, kompilasi source code di atas. Temen-temen akan melihat hasil dari aplikasi J2ME seperti gambar berikut:
Semoga temen-temen berhasil dalam mengembangkan aplikasi ini.
Good luck!
bagus2 menarik banget.. eh bisa yang tingkat lanjut nggak?? aq butuh bantuan… misalnya peke array of struct tapi
Pertanyaan menarik, bisa jadi bahan pertimbangan…
pak, saya sudah coba dan sukses berjalan
saya coba server pake wso2, saya menemui error :
expected: START_TAG {http://schemas.xmlsoap.org/soap/envelope/}Envelope (position:START_TAG @4:68 in java.io.InputStreamReader@d590dbc)
mohon bantuannya pak
sudah 2 minggu ubek coding ama googling
thanx
wah pas banget ini dengan kebutuhan.. makasih ya pak..
Saya pernah coba nusop di php, tapi kita harus jeli, krn di php 5 biasanya nusoap nya udah ada function soap di dlm php itu sendiri. Jadi yang di baca function soap dalam php itu bukan function soap di dalam file nusoap.
pas di EMulatornya gak mau . . .”This application does not use the screen and runs in the background”
Pak, kok gx jalan.. build failed katanya..
Error preverifying class com.wingfoot.soap.transport.J2SEHTTPTransport
VERIFIER ERROR com/wingfoot/soap/transport/J2SEHTTPTransport.call([B)[B:
Cannot find class java/net/URLConnection
Build failed
TOlong dijawab y pak… Mohon bantuannya.