Erro no Servidor

4 respostas
H

Olá pessoal…

Tenho uma aplicação web com acesso a banco de dados que mostra no index uma página de login e senha…

Para validação eu acrescentei o valor de master ou não…
E para isso usei um bean com um método setNum() que é usado na validação para dizer se o usuário logado é master ou não, mas…

Quando fui fazer o teste no servidor o seguinte erro surgiu:

O que será que acontece? Pois quando testo no meu pc não dá esse erro!!!
Que coisa! :wink:

4 Respostas

kina

Qual JRE você está usando? qual está instalado no servidor?
Ele está falando que este método não existe!
tbsa.login.setNum(I)

O que você recebe como parâmetro? Integer??
O que você está passando? int???
int != Integer!!!

Falou

H

Bem, o bean é esse:

package tbsa;

public class login {
  private static String str;
  private static int num;

  public void setStr(String newstr) {
    str = newstr;
  }
  public String getStr() {
    return str;
  }
  public void setNum(int newnum) {
    num = newnum;
  }
  public int getNum() {
    return num;
  }

}

e a página de validação é essa:

<%@page import="java.sql.*"%>
<%@page import="tbsa.*"%>
<html>
<head>
<title>
validar
</title>
</head>
<body bgcolor="#ffffff">
<h1>
<%
    //====================== LISTAR =========================


    login lo = new login();
    lo.setStr(request.getParameter("login"));
	out.println(lo.getStr());

    try {
          Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    }
    catch (Exception E) {
       out.println("Driver nao carregado!");
    }

    try {
       Connection conexao = DriverManager.getConnection("jdbc:oracle:thin:@techserver_01:1521:tech01","tbsa_ade","tbsa_ade");
//        Connection conexao = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.253:1521:orcl","eadi","eadi");        
        PreparedStatement sql = conexao.prepareStatement("select nome from usuario where nome = ?");
        PreparedStatement sql2 = conexao.prepareStatement("select senha from usuario where senha = ?");
        PreparedStatement sql3 = conexao.prepareStatement("select master from usuario where nome = ?");
        sql.setString(1, request.getParameter("login"));
        sql2.setString(1, request.getParameter("senha"));
        sql3.setString(1, request.getParameter("login"));
	ResultSet  resultado = sql.executeQuery();
        ResultSet  resultado2 = sql2.executeQuery();
	ResultSet  resultado3 = sql3.executeQuery();

	while (resultado3.next()) {
		if (resultado3.getString("master") != null)
			lo.setNum(Integer.parseInt(resultado3.getString("master")));
	}	if (!resultado2.next()) {
	        out.println("<h2>Senha Inválida</h2>");

        } else if (!resultado.next()) {
		out.println("<h2>Login Inválido</h2>");
        } else {

%>
<jsp:forward page="admin.jsp"/>
<%
out.println(lo.getStr());

     }
        resultado.close();
    } catch (SQLException e) {
        out.println("erro sql:"+e.getMessage());
    }
    //=========================FIM=============================
%>
</h1>
</body>
</html>

A parte que eu pego o valor do campo master e coloco no bean através do setNum é essa:

while (resultado3.next()) {
		if (resultado3.getString("master") != null)
			lo.setNum(Integer.parseInt(resultado3.getString("master")));
	}

Como pode ver, eu trato o String recebido do banco de dados transformando-o em int, pra depois usá-lo em alguns outros 'if' do site através do método getNum...

O jre usado no servidor é o 1.4...
E o que eu uso no meu pc é o 1.5...

O que achas que pode ser?

Ahh, muito obrigado pela ajuda!!! :)

kina

Qual programa vc está utilizando para editar?
Se for o eclipse sete ele para gerar o código compatível com o 1.4
clique no projeto -> Properties -> java Compiler -> Escolha para gerar o código compatível com o 1.4

se for na mão (acho dificil) faça assim:
javac [local][arquivo.java] -source 1.4

kina

Obs: Você está apredendo a mexer agora em JSP??
Depois dê uma olhada em Designer Pattern!!!
Evite usar SQL dentro do seu JSP…
Evite Scriptlets! (códigos java dentro da tag <% %>)

Vai ser muito mais fácil vc dar manutenção no futuro se começar a evitar essas práticas ^^

Falou

Criado 21 de julho de 2005
Ultima resposta 21 de jul. de 2005
Respostas 4
Participantes 2