POsta o código ai amigo fica mais facil pra ajudar
vanessasouza
Meu código do Midlet
packagecontrole;importjava.io.InputStream;importjavax.microedition.io.Connector;importjavax.microedition.io.HttpConnection;importjavax.microedition.lcdui.Alert;importjavax.microedition.lcdui.Command;importjavax.microedition.lcdui.CommandListener;importjavax.microedition.lcdui.Display;importjavax.microedition.lcdui.Displayable;importjavax.microedition.lcdui.Form;importjavax.microedition.lcdui.TextField;importjavax.microedition.midlet.MIDlet;publicclassMeuMidletextendsMIDletimplementsCommandListener{privateDisplaytela;privateFormformulario;privateCommandbtSair;privateCommandbtTestar;privateTextFieldtfSenha;privateTextFieldtfConta;publicMeuMidlet(){// inicializacao dos componentesthis.formulario=newForm("Midlet/Servlet");//this.formulario.append("Testando....");this.tfConta=newTextField("Conta: ","",20,TextField.ANY);this.formulario.append(this.tfConta);this.tfSenha=newTextField("Senha: ","",20,TextField.ANY);this.formulario.append(this.tfSenha);this.btSair=newCommand("Sair",Command.EXIT,0);this.btTestar=newCommand("Testar",Command.SCREEN,1);// adiciona o command ao formulariothis.formulario.addCommand(this.btSair);this.formulario.addCommand(this.btTestar);// configura esta instancia como listener dos eventos de commandthis.formulario.setCommandListener(this);}publicvoidstartApp(){// obtem referencia a tela do dispositivothis.tela=Display.getDisplay(this);// configura o formulario como o Displayable correntethis.tela.setCurrent(this.formulario);}publicvoidpauseApp(){}publicvoiddestroyApp(booleanpode){}publicvoidcommandAction(Commandcomando,Displayabled){if(comando==this.btSair){// se o command sair for acionadothis.destroyApp(true);this.notifyDestroyed();}if(comando==this.btTestar){booleanestahOk=false;Alertalerta=newAlert("Resposta");try{Stringurl="http://127.0.0.1:8080/prjServlet/servidor?cta="+this.tfConta.getString()+"&pw="+this.tfSenha.getString();// String url = "http://32.101.215.139:8080/servidor/servidor?cta=" + this.tfConta.getString() + "&pw=" + this.tfSenha.getString();System.out.println(url);HttpConnectionhttp=(HttpConnection)Connector.open(url);http.setRequestMethod(HttpConnection.GET);http.setRequestProperty("User-Agent","Profile/MIDP-1.0");if(http.getResponseCode()==HttpConnection.HTTP_OK){InputStreamresposta=http.openInputStream();inttamanho=(int)http.getLength();if(tamanho!=-1){byte[]conteudo=newbyte[tamanho];resposta.read(conteudo);if(conteudo[0]==(byte)'1')estahOk=true;elseestahOk=false;}if(estahOk)alerta.setString("Conexão bem sucedida e autenticação Ok!!!");elsealerta.setString("Conexão bem sucedida e autenticação falhou!!!");}elsealerta.setString("Conexão falhou! "+http.getResponseMessage());// se o command msg for acionado}catch(Throwablet){alerta.setString("Exceção!!!");}this.tela.setCurrent(alerta);}}}
Qd coloco pra rodar no WTK e coloco usuário e senha da o erro airtime.
fabianofrizzo
Pelo que vi vc não esta usando thread para a conexão… Tenta fazer com thread e ve se funciona…
J
julgado
Voce debugou e ele para a onde ???
vanessasouza
Código com as thread
packagecontrole;importjava.io.IOException;importjava.io.InputStream;importjavax.microedition.io.Connector;importjavax.microedition.io.HttpConnection;importjavax.microedition.lcdui.Alert;importjavax.microedition.lcdui.Command;importjavax.microedition.lcdui.CommandListener;importjavax.microedition.lcdui.Display;importjavax.microedition.lcdui.Displayable;importjavax.microedition.lcdui.Form;importjavax.microedition.lcdui.TextField;importjavax.microedition.midlet.MIDlet;publicclassMeuMidletextendsMIDletimplementsCommandListener{privateDisplaytela;privateFormformulario;privateCommandbtSair;privateCommandbtTestar;privateTextFieldtfSenha;privateTextFieldtfConta;publicMeuMidlet(){// inicializacao dos componentesthis.formulario=newForm("Midlet/Servlet");//this.formulario.append("Testando....");this.tfConta=newTextField("Conta: ","",20,TextField.ANY);this.formulario.append(this.tfConta);this.tfSenha=newTextField("Senha: ","",20,TextField.ANY);this.formulario.append(this.tfSenha);this.btSair=newCommand("Sair",Command.EXIT,0);this.btTestar=newCommand("Testar",Command.SCREEN,1);// adiciona o command ao formulariothis.formulario.addCommand(this.btSair);this.formulario.addCommand(this.btTestar);// configura esta instancia como listener dos eventos de commandthis.formulario.setCommandListener(this);}publicvoidstartApp(){// obtem referencia a tela do dispositivothis.tela=Display.getDisplay(this);// configura o formulario como o Displayable correntethis.tela.setCurrent(this.formulario);}publicvoidpauseApp(){}publicvoiddestroyApp(booleanpode){}publicvoidcommandAction(Commandcomando,Displayabled){if(comando==this.btSair){// se o command sair for acionadothis.destroyApp(true);this.notifyDestroyed();}if(comando==this.btTestar){booleanestahOk=false;EnviaRequisicaominhaThread=newEnviaRequisicao(this.tfConta.getString(),this.tfSenha.getString());while(minhaThread.isAlive());// Está trabalhandoAlertalerta=newAlert("Resposta");alerta.setString(minhaThread.getResultado());}}publicclassEnviaRequisicaoextendsThread{privateStringconta;privateStringsenha;privateStringresultado="processando...";publicEnviaRequisicao(Stringconta,Stringsenha){this.conta=conta;this.senha=senha;this.start();}publicvoidrun(){try{Stringurl="http://127.0.0.1:8080/prjServlet/servidor?cta="+this.conta+"&pw="+this.senha;// String url = "http://32.101.215.139:8080/servidor/servidor?cta=" + this.tfConta.getString() + "&pw=" + this.tfSenha.getString();System.out.println("Executando -->"+url);HttpConnectionhttp=(HttpConnection)Connector.open(url);http.setRequestMethod(HttpConnection.GET);http.setRequestProperty("User-Agent","Profile/MIDP-1.0");if(http.getResponseCode()==HttpConnection.HTTP_OK){InputStreamresposta=http.openInputStream();inttamanho=(int)http.getLength();if(tamanho!=-1){byte[]conteudo=newbyte[tamanho];resposta.read(conteudo);if(conteudo[0]==(byte)'1')this.resultado="Ok!!! Validou corretamente";elsethis.resultado="Ok!!! Mas a conta/senha está errada";}}elsethis.resultado="Conexão falhou! "+http.getResponseMessage();// se o command msg for acionado}catch(Throwablet){this.resultado=t.getMessage();}}publicStringgetResultado(){returnthis.resultado;}}}
Ao colocar pra rodar aparece
Running with locale: Portuguese_Brazil.1252
Running in the identified_third_party security domain
http://127.0.0.1:8080/prjServlet/servidor?cta=java&pw=j2me
Warning: To avoid potential deadlock, operations that may block, such as
networking, should be performed in a different thread than the
commandAction() handler.
E no emulador aparece “Is it OK to use airtime? yes / no”
Mas se eu apertar em yes nao acontece nada
Me ajudem.
Obrigada
vanessasouza
Ao colocar pra executar, eu digito o usuário e a senha e envio.
ai da a mensagem de erro e nao acontece mais nada.
percebi que o código pára de executar ao iniciar a conexão “HttpConnection http = (HttpConnection) Connector.open(url);”, pois antes e depois da conexão coloquei para imprimir uma mensagem e ele mostra somente a mensagem que vem antes da conexão.