Integrasi PHP Web Services dan J2ME Menggunakan KSOAP2
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;</code>
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…