Erro estranho no DWR

Tenho o seguinte codigo:

[code]package br.com.info;

public class Login {

String empresa = "adm";
String usuario = "marcelo";
String senha   = "1234";  

public String getEmpresa (){
	return this.empresa; 
}

public String getUsuario () {
	return this.usuario; 
}

public String getSenha () {
	return this.senha;
}

public Integer fazLogin(String empresa,String usuario,String senha){
	Login lgo = new Login();
	Integer retorno = 0;
	
	if (empresa != lgo.getEmpresa())
		retorno = 1;
	if (usuario != lgo.getUsuario() || senha != lgo.getSenha() )
		retorno += 2;
	
	return retorno;
	 
}

public static void main (String args[]){
	Login lgo = new Login();
	System.out.println("Digite");
	System.out.println(String.valueOf(lgo.fazLogin("dvxd","marcelo","1234")));
	
}

}[/code]

Aquele metodo main alie é so pra testar :wink:

Bem, quando eu executo ele pelo main, funciona tudo certinho, mas quando eu executo ele pela pagina de teste do DWR, sempre me retorna o valor 3.

Por exemplo, se eu deixar a empresa certa, mas o usuario e senha errada, deveria me retornar 2. Quando faço esse teste pelo main, tudo beleza, mas pelo DWR, sempre volta o valor 3…q q ta acontecendo?

Como você está usando esse código no JS ?

Pode ser que tenha outros erros, mas pra começar:

[quote]if (empresa != lgo.getEmpresa())
retorno = 1;
if (usuario != lgo.getUsuario() || senha != lgo.getSenha() )
retorno += 2;[/quote]

Objetos não são comparados com esses operadores, o correto seria:

if (!empresa.equals(lgo.getEmpresa())) retorno = 1; if (!usuario.equals(lgo.getUsuario()) || !senha.equals(lgo.getSenha())) retorno += 2;

Cara, na verdade eu nem fiz um JS, e fiz direto pelo DWR, pois ainda não implementei isso em um JSP, soh estou testando a função.