Boa noite!
Gostaria de uma ajuda com tomcat + struts + mysql, estou estudando java e tentando entender um código, mas esta ocorrendo um erro.
Pelos tutoriais que peguei na net minhas configurações estão corretas, mas não sei porque ocorre um tal erro 500 quando tento acessar a aplicação.
O erro estou postando em anexo. Ja verifiquei as classpath, conexão com banco, entre outros… estou perdida, não sei como resolver, se alguem se dispor em me dar uma mão deixo o meu msn [email removido]
É que preciso com urgencia desta solução.
Fico grata
Tomcat +struts = erro 500
P
5 Respostas
Olá
O problema é no seu código. Verifique na classe CarritoServiceImpl na linha 146 qual o objeto está nulo e por que ele esta nulo.
P
Este é o código da classe a ultima chave em negrito é a linha 146.
public class CarritoServiceImpl
implements ICarritoService
{
ServletContext servletContext;
Connection con;
public CarritoServiceImpl()
{
servletContext = null;
con = null;
init();
}
public void setServletContext(ServletContext ctx)
{
servletContext = ctx;
}
public ServletContext getServletContext()
{
return servletContext;
}
public List getListaProducto()
{
List listaProducto = new LinkedList();
ResultSet result = null;
try
{
String query = "SELECT * FROM PRODUCTO";
Statement stmt = con.createStatement();
ProductoVO productoVO;
for(result = stmt.executeQuery(query); result.next(); listaProducto.add(productoVO))
{
int id = result.getInt("id");
String nombre = result.getString("nombre");
String descripcion = result.getString("descripcion");
String smallImageURL = result.getString("smallImageURL");
double basePrice = result.getDouble("basePrice");
productoVO = new ProductoVO(id, nombre, descripcion, basePrice, smallImageURL);
System.out.println(productoVO.toString());
}
}
catch(SQLException se)
{
System.err.println("Se ha producido un error de BD.");
System.err.println(se.getMessage());
}
return listaProducto;
}
public ProductoVO getDetalleProducto(String productoId)
{
ResultSet result = null;
ProductoVO productoVO = null;
try
{
String query = "SELECT * FROM PRODUCTO WHERE ID = " + productoId;
Statement stmt = con.createStatement();
result = stmt.executeQuery(query);
if(!result.next())
{
throw new SQLException();
}
int id = result.getInt("id");
String nombre = result.getString("nombre");
String descripcion = result.getString("descripcion");
String smallImageURL = result.getString("smallImageURL");
double basePrice = result.getDouble("basePrice");
productoVO = new ProductoVO(id, nombre, descripcion, basePrice, smallImageURL);
}
catch(SQLException se)
{
System.err.println("Se ha producido un error de BD.");
System.err.println(se.getMessage());
}
return productoVO;
}
public UserVO authenticate(String email, String password)
{
ResultSet result = null;
UserVO userVO = null;
try
{
String query = "SELECT * FROM USUARIO WHERE EMAIL = ? AND PASSWORD = ?";
PreparedStatement ps = con.prepareStatement(query);
ps.setString(1, email);
ps.setString(2, password);
result = ps.executeQuery();
if(result.next())
{
userVO = new UserVO();
userVO.setId(result.getInt("id"));
userVO.setFirstName(result.getString("FirstName"));
userVO.setLastName(result.getString("LastName"));
userVO.setEmailAddress(result.getString("Email"));
}
}
catch(SQLException se)
{
System.err.println("Se ha producido un error de BD.");
System.err.println(se.getMessage());
}
return userVO;
}
public void logout(String s)
{
}
public void destroy()
{
try
{
con.close();
}
catch(SQLException se)
{
System.err.println("Se ha producido un error al cerrar la conexi\363n de BD.");
System.err.println(se.getMessage());
}
}
private void init()
{
try
[b] {
Class.forName("org.gjt.mm.mysql.Driver");
con = DriverManager.getConnection("jdbc:mysql://localhost/carrito", "root", "");
}[/b]
catch(SQLException se)
{
System.err.println("Se ha producido un error al abrir la conexi\363n de BD.");
System.err.println(se.getMessage());
}
catch(ClassNotFoundException s)
{
System.out.println("No se encuentra la clase " + s.toString());
}
}
}
Cara, é possivel que o driver do mysql que você esteja usando não esteja dentro do diretório /SuaAplicacao/WEB-INF/lib, pois o tomcat carrega jars que estejam nesta pasta.
P
Eu ja havia lido sobre isto, tenho o jar do mysql na pasta lib sim.
Nao consigo corrigir isto 
Como furutani disse verifique a classe CarritoServiceImpl está lançando NullPointerException exatamente na linha 146
Nao é problema do driver do mysql.
Criado 29 de junho de 2007
Ultima resposta 29 de jun. de 2007
Respostas 5
Participantes 4
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo
