ola colegas, :?: :idea:
Desenvolvi uma aplicação cliente j2me que passa um parametro para um webservice, este por sua vez executa um select numa base de dados.
Obs: Tanto o webservice como o servidor de banco estão numa mesma máquina.
Obs: Estou usando o ksoap 2.0.
O problema é que quando tento compilar minha aplicação j2me, aparece a seguinte mensagem de erro:
“Error preverifying class org.kobjects.xmlrpc.Driver
VERIFIER ERROR org/kobjects/xmlrpc/Driver.main([Ljava/lang/String;)V:
Cannot find class java/io/FileReader
Build failed”
Aguém sabe a solução?
Segue o código j2me:
// ------------------------------------------------
// Código fonte da aplicação cliente j2me
// ------------------------------------------------
[code]
//importando classes necessárias
import java.io.;
import java.lang.;
import javax.microedition.midlet.;
import javax.microedition.lcdui.;
import javax.microedition.io.;
import org.ksoap2.;
import org.ksoap2.transport.;
import org.ksoap2.serialization.;
public class FoneCliente extends MIDlet implements CommandListener
{
// declaração dos objetos
Display tela;
TextBox texto;
TextField matricula, nomealuno;
Ticker ticker;
Command opcaoExt, opcaoUpd, opcaoSel, opcaoIns, opcaoDel;
Command enviaUpd, enviaSel, enviaIns, enviaDel;
private Form mainForm;
StringItem resultItem = new StringItem("", "");
// comandos do TextField
TextField fieldSel = new TextField ("Digite a matrícula do aluno:","",4,TextField.ANY);
// método construtor
public FoneCliente()
{
// instanciar TextBox
this.texto = new TextBox(":: Projeto Final", "TEMA: Interface entre Celulares e um Webservice para ter acesso à Base de Dados.", 80,TextField.ANY);
this.ticker = new Ticker("teste");
// seta o ticker na tela
this.texto.setTicker(this.ticker);
// comandos do TextBox
this.opcaoExt = new Command("Sair", Command.EXIT, 0);
this.opcaoSel = new Command("Consultar", Command.SCREEN, 3);
this.enviaSel = new Command("Consulta", Command.SCREEN, 1);
// relacionar Commands com TextBox
this.texto.addCommand(opcaoExt);
this.texto.addCommand(opcaoSel);
// registrar TextBox com o CommandListener
this.texto.setCommandListener(this);
}
public void startApp()
{
// obter tela do dispositivo
this.tela = Display.getDisplay(this);
// setar Displayable corrente para a tela
this.tela.setCurrent(this.texto);
}
public void pauseApp()
{}
public void destroyApp(boolean i)
{}
// resposta aos comandos do usuário
public void commandAction(Command c, Displayable d)
{
if (c == opcaoExt) // sair da aplicação
{
this.destroyApp(true);
this.notifyDestroyed();
}
if (c == opcaoSel) // opcao: select
{
mainForm = new Form(":: Consultando aluno...");
mainForm.append(fieldSel);
mainForm.setCommandListener(this);
mainForm.addCommand(this.opcaoExt);
mainForm.addCommand(this.enviaSel);
this.tela.setCurrent(mainForm);
}
if (c == enviaSel) // exec. thread para select
{
Thread thSel= new Thread(new getSel());
thSel.start();
}
}
public class getSel implements Runnable
{
public void run() // thread de select
{
String matricula = fieldSel.getString();
SoapObject soapobject = new SoapObject("urn:projetofinal/consultar","consultar");
SoapSerializationEnvelope sse = new SoapSerializationEnvelope(SoapEnvelope.VER11);
soapobject.addProperty("matricula", matricula);
System.out.println(soapobject);
sse.bodyOut = soapobject;
HttpTransport httptransport = null;
httptransport = new HttpTransport("http://localhost/Webservice/Service1.asmx");
httptransport.call("urn:projetofinal/consultar",sse);
}
}
}
}[/code]
[color=“red”]Não esqueça de Colocar as tags Code quando for postar um codigo![/color]