2016-11-19 1 views
0

J'ai deux fichiers, l'un est le frontal login.jsp et le back-end loginUser.java. J'essaie d'obtenir le boolean du loginUser.java. Cependant, il y a une erreur java.lang.IncompatibleClassChangeError. Je ne sais pas pourquoi cela sortira. Comment puis-je résoudre cette erreur? Merci.Comment résoudre - java.lang.IncompatibleClassChangeError?

Voici mon code de 'login.jsp':

try{ 
      out.println("HT"); 
        login.LoginUser user = new login.LoginUser(id,pwd); 
        boolean login_success = user.isLogin(); <---This line have error. 
        //int role_id = user.get_role_id();     
        if (login_success){ 
          out.println("Login Success"); 
          // out.println(user.get_role_id().toString()); 

%> 
<script> 
    setTimeout(function() { 
       window.location.href = "control_panel.jsp"; //will redirect to your blog page (an ex: blog.html) 
     },2000); 
</script> 
<% 
    } 
    else{ 
     out.println("Login Failed"); 

%> 

Voici mon code de 'loginUser.java':

public class LoginUser { 

private String username,password; 
public boolean login_success; 
public int role_id; 



public LoginUser(String username,String password){ 
    this.username=username; 
    this.password=password; 
    this.login_success=false; 
    this.role_id = 0; 
} 

public boolean login(){ 
    db.DataConnect conn = new db.DataConnect(); 
    conn.connect(); 

    ResultSet login_result; 
    String sql_statement = "SELECT COUNT(*) AS user_found, role_id FROM t_user WHERE user_name = '" + this.username + "' AND password = '" + this.password + "'"; 
    System.out.println(sql_statement); 
    try{ 
     login_result = conn.select(sql_statement); 
     if(login_result.next()){ 
      if(login_result.getInt("user_found") == 1){ 
       login_success = true; 
       role_id = login_result.getInt("role_id"); 
      } 
     } 
    } catch (Exception e) {System.out.println(e);} 
    conn.close(); 

    return login_success; 
} 

public boolean isLogin(){ 
    return true; 
} 


} 

Cependant, quand j'ai changé la ligne boolean login_success = user.isLogin(); à boolean login_success = user.login();, l'erreur ne sortira pas.

Répondre

0

Comme l'erreur indique clairement que le fichier de classe est Incompatible, vous pouvez résoudre le problème en recompilant vos fichiers source, puis ajouter au chemin de classe du serveur.

Lance lorsqu'un changement de classe incompatible est survenu à une définition de classe . La définition de certaines classes, dont dépend actuellement la méthode d'exécution , a depuis été modifiée.