Live Traffic

Our Story

Ceremony

Search

Just Married

Web Service di java

by - February 04, 2010

Alhamdulillah nih.. Setelah beberapa hari yang lalu berhasil menghubungkan j2me dengan web service php mysql selama dua hari.. Sekarang selama dua hari juga aku berhasil menghubungkan j2me dengan web service java sql server..
Ternyata pemanggilannya berbeda.. Di bawah ini aku tampilkan perbedaannya:

Source code j2me pada saat memanggil web service java :

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import com.wingfoot.soap.*;
import com.wingfoot.soap.encoding.*;
import com.wingfoot.soap.transport.*;

public class booksClient extends MIDlet implements CommandListener, Runnable{
private Form form;
private TextField txtKodeBuku;
private StringItem strResult;
private Command cmdOk;
private Command cmdExit;
private Display display;

public booksClient(){
form=new Form("Struct");
txtKodeBuku=new TextField("Kode Buku","",10,TextField.ANY);
strResult=new StringItem("","");
cmdExit=new Command("Exit",Command.EXIT,2);
cmdOk=new Command("OK",Command.OK,2);

form.append(txtKodeBuku);
form.append(strResult);
form.addCommand(cmdOk);
form.addCommand(cmdExit);
form.setCommandListener(this);
}

public void startApp() {
display=Display.getDisplay(this);
display.setCurrent(form);
}

public void pauseApp() {
}

public void destroyApp(boolean unc){
}

public void commandAction(Command c, Displayable d){
if(c==cmdOk){
new Thread(this).start();
}
if(c==cmdExit){
destroyApp(false);
notifyDestroyed();
}
}

public void run(){
try{
String url="http://10.0.0.1:8081/Books/BookWSServiceService";
Call c = new Call();

c.setMethodName("retrieveBuku");
c.addParameter("id",txtKodeBuku.getString().trim());
c.setTargetObjectURI("http://ws.book/");

HTTPTransport transport = new HTTPTransport(url,null);
transport.getResponse(true);
Envelope res = c.invoke(transport);

UntypedObject uo = (UntypedObject)res.getParameter(0);

if(uo!=null){
strResult.setText("Kode Buku : " + uo.getPropertyValue(1)
+ "\nJudul : " + uo.getPropertyValue(2)
+ "\nPengarang : " + uo.getPropertyValue(4)
+ "\nPenerbit : " + uo.getPropertyValue(3)
+ "\nHarga : " + uo.getPropertyValue(0));
}
else{
strResult.setText("Kode buku tidak ditemukan");
}

}
catch(Exception ex){
strResult.setText(ex.toString());
}
}

}

Sedangkan Source code j2me pada saat memanggil web service php :

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;
import com.wingfoot.soap.*;
import com.wingfoot.soap.encoding.*;
import com.wingfoot.soap.transport.*;

public class booksClient extends MIDlet implements CommandListener, Runnable{
private Form form;
private TextField txtKodeBuku;
private StringItem strResult;
private Command cmdOk;
private Command cmdExit;
private Display display;

public booksClient(){
form=new Form("Struct");
txtKodeBuku=new TextField("Kode Buku","",10,TextField.ANY);
strResult=new StringItem("","");
cmdExit=new Command("Exit",Command.EXIT,2);
cmdOk=new Command("OK",Command.OK,2);

form.append(txtKodeBuku);
form.append(strResult);
form.addCommand(cmdOk);
form.addCommand(cmdExit);
form.setCommandListener(this);
}

public void startApp() {
display=Display.getDisplay(this);
display.setCurrent(form);
}

public void pauseApp() {
}

public void destroyApp(boolean unc){
}

public void commandAction(Command c, Displayable d){
if(c==cmdOk){
new Thread(this).start();
}
if(c==cmdExit){
destroyApp(false);
notifyDestroyed();
}
}

public void run(){
try{
String url="http://10.0.0.1/ws/books.php";
Call c = new Call();

c.setMethodName("retrieveBuku");
c.addParameter("id",txtKodeBuku.getString().trim());

HTTPTransport transport = new HTTPTransport(url,null);
transport.getResponse(true);
Envelope res = c.invoke(transport);

UntypedObject uo = (UntypedObject)res.getParameter(0);

if(uo!=null){
strResult.setText("Kode Buku : " + uo.getPropertyValue(1)
+ "\nJudul : " + uo.getPropertyValue(2)
+ "\nPengarang : " + uo.getPropertyValue(4)
+ "\nPenerbit : " + uo.getPropertyValue(3)
+ "\nHarga : " + uo.getPropertyValue(0));
}
else{
strResult.setText("Kode buku tidak ditemukan");
}

}
catch(Exception ex){
strResult.setText(ex.toString());
}
}

}

Jadi.. bedanya terletak pada saat memanggil kelas run, pada saat memanggil web service java, karena di sini aku pakai wingfoot SOAP, pada method callnya harus ditambahkan c.setTargetObjectURI("http://ws.book/");
selain itu.. jangan lupa pemanggilan host jangan menggunakan localhost, tapi menggunakan IP loopback.. sipp

You May Also Like

1 comments

  1. mbak... fungsi UntypedObject tu untuk apa?
    bisa tolong dijelasin sedikit kah? Sya bingung.. saya sudah ikuti tapi tetap ndak bisa

    ReplyDelete