Jump to content

Archived

This topic is now archived and is closed to further replies.

vanessa_souza

wtk - erro no emulador de airtime

Recommended Posts

Ola, preciso colocar pra rodar um programa que se conecta a um servlet. O problema é quando coloco no emulador WTK pra rodar tá dando erro de:

 

Is it Ok to use airtime?

 

eu coloco yes no emulador mas nao acontece nada.

 

Li em foruns que é pra fazer em threads, já coloquei meu código em threads mas continua com o mesmo erro.

 

Me ajudem por favor.

Share this post


Link to post
Share on other sites

Me ajudem.

 

Meu servlet:

1. package controle;

2.

3. import java.io.IOException;

4. import java.io.PrintWriter;

5. import java.util.HashMap;

6. import javax.servlet.ServletException;

7. import javax.servlet.http.HttpServlet;

8. import javax.servlet.http.HttpServletRequest;

9. import javax.servlet.http.HttpServletResponse;

10.

11.

12. public class Servidor extends HttpServlet

13. {

14. public void doGet (HttpServletRequest request, HttpServletResponse response) throws IOException

15. {

16. System.out.println("recebeu requisição!");

17. String conta = request.getParameter ("cta");

18. String senha = request.getParameter ("pw");

19. response.setContentType ("text/plain");

20. PrintWriter out = response.getWriter();

21. if (conta != null && conta.equals("java"))

22. {

23. if (senha != null && senha.equals("j2me"))

24. {

25. out.print ("1");

26. out.close ( );

27. return;

28. }

29. }

30. out.print ("0");

31. out.close ();

32. }

33. }

 

 

 

Meu midlet:

 

1. package controle;

2.

3. import java.io.IOException;

4. import java.io.InputStream;

5.

6. import javax.microedition.io.Connector;

7. import javax.microedition.io.HttpConnection;

8. import javax.microedition.lcdui.Alert;

9. import javax.microedition.lcdui.Command;

10. import javax.microedition.lcdui.CommandListener;

11. import javax.microedition.lcdui.Display;

12. import javax.microedition.lcdui.Displayable;

13. import javax.microedition.lcdui.Form;

14. import javax.microedition.lcdui.TextField;

15. import javax.microedition.midlet.MIDlet;

16.

17. public class MeuMidlet extends MIDlet implements CommandListener

18. {

19. private Display tela;

20. private Form formulario;

21. private Command btSair;

22. private Command btTestar;

23. private TextField tfSenha;

24. private TextField tfConta;

25.

26. public MeuMidlet()

27. {

28. // inicializacao dos componentes

29. this.formulario = new Form("Midlet/Servlet");

30. //this.formulario.append("Testando....");

31. this.tfConta = new TextField("Conta: ", "", 20, TextField.ANY);

32. this.formulario.append(this.tfConta);

33. this.tfSenha = new TextField("Senha: ", "", 20, TextField.ANY);

34. this.formulario.append(this.tfSenha);

35. this.btSair = new Command("Sair", Command.EXIT, 0);

36. this.btTestar = new Command("Testar", Command.SCREEN,1);

37.

38. // adiciona o command ao formulario

39. this.formulario.addCommand(this.btSair);

40. this.formulario.addCommand(this.btTestar);

41.

42. // configura esta instancia como listener dos eventos de command

43. this.formulario.setCommandListener(this);

44. }

45.

46. public void startApp()

47. {

48. // obtem referencia a tela do dispositivo

49. this.tela = Display.getDisplay(this);

50.

51. // configura o formulario como o Displayable corrente

52. this.tela.setCurrent(this.formulario);

53. }

54.

55. public void pauseApp()

56. {

57. }

58.

59. public void destroyApp(boolean pode)

60. {

61. }

62.

63. public void commandAction(Command comando, Displayable d)

64. {

65. if (comando == this.btSair)

66. {

67. // se o command sair for acionado

68. this.destroyApp(true);

69. this.notifyDestroyed();

70. }

71. if (comando == this.btTestar)

72. {

73. boolean estahOk = false;

74. EnviaRequisicao minhaThread = new EnviaRequisicao(this.tfConta.getString(), this.tfSenha.getString());

75. while(minhaThread.isAlive())

76. ; // Está trabalhando

77. Alert alerta = new Alert("Resposta");

78. alerta.setString(minhaThread.getResultado());

79. }

80. }

81.

82. public class EnviaRequisicao extends Thread

83. {

84. private String conta;

85. private String senha;

86. private String resultado = "processando...";

87.

88. public EnviaRequisicao(String conta, String senha)

89. {

90. this.conta = conta;

91. this.senha = senha;

92. this.start();

93. }

94.

95. public void run()

96. {

97. try

98. {

99. String url = "http://127.0.0.1:8080/prjServlet/servidor?cta=" + this.conta +

100. "&pw=" + this.senha;

101. // String url = "http://32.101.215.139:8080/servidor/servidor?cta=" + this.tfConta.getString() + "&pw=" + this.tfSenha.getString();

102. System.out.println("Executando -->" + url);

103. HttpConnection http = (HttpConnection) Connector.open(url);

104. http.setRequestMethod(HttpConnection.GET);

105. http.setRequestProperty("User-Agent", "Profile/MIDP-1.0");

106.

107. if (http.getResponseCode() == HttpConnection.HTTP_OK)

108. {

109.

110. InputStream resposta = http.openInputStream();

111. int tamanho = (int)http.getLength();

112. if(tamanho != -1)

113. {

114.

115. byte[] conteudo = new byte [tamanho];

116. resposta.read(conteudo);

117. if (conteudo [0] == (byte) '1')

118. this.resultado = "Ok!!! Validou corretamente";

119. else

120. this.resultado = "Ok!!! Mas a conta/senha está errada";

121. }

122. }

123. else

124. this.resultado = "Conexão falhou! " + http.getResponseMessage();

125. // se o command msg for acionado

126. }

127. catch(Throwable t)

128. {

129. this.resultado = t.getMessage();

130. }

131. }

132.

133. public String getResultado()

134. {

135. return this.resultado;

136. }

137. }

138. }

 

No eclipse aparece esse erro:

 

1. Running with locale: Portuguese_Brazil.1252

2. Running in the identified_third_party security domain

3. http://127.0.0.1:8080/prjServlet/servidor?...ava&pw=j2me

4. Warning: To avoid potential deadlock, operations that may block, such as

5. networking, should be performed in a different thread than the

6. commandAction() handler.

 

E no emulador aparece "Is it OK to use airtime? yes / no"

 

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.

Share this post


Link to post
Share on other sites

Olá Vanessa, estou movendo seu tópico para a sub-fórum Java mobile ok.

 

Em relação ao seu problema, da uma olhada no link abaixo, acredito que possa lhe ajudar muito.

 

http://www.ibm.com/developerworks/java/library/wi-jio/

 

Qualquer coisa, posta denovo ok.

 

Grande abraço

Share this post


Link to post
Share on other sites

×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.