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.