Servlet & J2me

Boa noite pessoal.

Após muito ralar, consegui desenvolver um aplicativo em j2me que acessa um servidor web e busca o conteúdo de .txt e disponibiliza no celular (pelo menos no emulador), mas para tornar este aplicativo dinâmico, modifiquei-o para que o mesmo acesse uma servlet em um servidor e esta servlet, após validar os paramentros login/senha, deve processar uma consulta sql e retornar o resultado para o celular. A aplicação para o celular já está pronta e funcionando, mas a servlet…esta esta me dando muita dor de cabeça, ela compila sem erros, mas quando a aplicação cliente tenta acessá-la ela retorna um “internal server error”, então executo a chamo a servlet pelo browser e o erro é o a seguir:

[code]HTTP Status 500 -


type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

javax.servlet.ServletException: Servlet execution threw an exception
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

root cause

java.lang.NoClassDefFoundError: javax/resource/ResourceException
java.lang.Class.forName0(Native Method)
java.lang.Class.forName(Class.java:164)
saidservlet.consulta(saidservlet.java:42)
saidservlet.doGet(saidservlet.java:25)
javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:362)

note The full stack trace of the root cause is available in the Apache Tomcat/5.5.9 logs.


Apache Tomcat/5.5.9[/code]

E este é o código da Servlet, é quase identico ao exemplo do livro Core J2me, do Muchow.

[quote]/* saidservlet.java

  • Created on 21 de Abril de 2006, 13:09 pm
  • @author Lourival A. Oliveira
  • @version 1.0
    */

import java.io.;
import java.net.
;
import java.sql.;
import java.util.
;
import javax.servlet.;
import javax.servlet.http.
;
import org.firebirdsql.jdbc.*;
import org.firebirdsql.logging.Logger;

public class saidservlet extends HttpServlet {

//------------------------------------------------------------------------------
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//-------------
String login = request.getParameter(“login”),
senha = request.getParameter(“senha”);

String notas = consulta(login,senha);
if (notas == null)
{
    response.sendError(response.SC_BAD_REQUEST,"Login/Senha incorretos!!!");            
    return;
}    
response.setContentType("text/plain;charset=UTF-8");
PrintWriter out = response.getWriter();
out.print(notas);
out.close();        
//-------------
}

//------------------------------------------------------------------------------
private String consulta(String login, String senha){
//-------------
try
{
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
Connection con = DriverManager.getConnection(“jdbc:firebirdsql:localhost:”
+“c:/java/j2me/said/dados.fdb”,“SYSDBA”,“masterkey”);
Statement Stm = con.createStatement();
String sql=“select codigo, login from USUARIOS where login =” + login +
“and senha = '” + senha + “’”;
ResultSet aQuery = Stm.executeQuery(sql);

if (aQuery.next())
    return aQuery.getString(2);
else
    return null;
}
catch (Exception e){
    return e.toString();
}
//-------------

}
//------------------------------------------------------------------------------
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
//------------------------------------------------------------------------------
public String getServletInfo() {
return “SaidServer 1.0 - by Lourival A. Oliveira”;
}
//------------------------------------------------------------------------------
}
[/quote]

Agradeço muito se alguém puder me ajudar, pois só esta faltando isto para eu terminar o meu tcc.

Estou usando NetBeans 5 + Mobility Pack e o Tomcat embutido.

Abraço a todos. Agradeço desde já pela atenção.

Lourival.

ps.: no código da Servlet, o trecho de conexão com o banco e a consulta, eu uso normalmente em uma página jsp e funciona perfeitamente.

No mímino estranho, porque ele está lançando uma exceção por procurar uma classe que está deprecated no Java EE 1.4, então ela deveria estar no seu classpath.

Como não está, baixe ele aqui -> http://java.sun.com/j2ee/connector/download.html

E coloque no claspath da aplicação. Não consigo imaginar poque você precisa disso.

Pessoal,
gostaria de aproveitar essa discussão, pois tenho uma dúvida: é possível fazer um celular escutar uma requisição HTTP (http://localhost:8080/aplicacao) “deployada” em um PC, sem depender, de um WAP Gateway da operadora (= sem custo)?
Possuo alguns emuladores para celular, porém, gostaria de ver no mundo real, para chegar nos problemas do Lourival.

Valeu galera!
Evandro.

Pessoal!
sou iniciante no J2ME e estou prescisando de uma grande ajuda
como faço para que oq eu digitar o aplicação do cel a origem, e o destino, mandar pra essa página, http://paginas.terra.com.br/informatica/integradorgoogle/
e ele me retornar a resposta assim como no site?
vlw pessoal
trabalho de aula pessoal
vlw