1

IE: com.adms.fcl3.entity.User を com.adms.fcl3.entity.User にキャストできません

プロジェクトを EJB/ManagedBeans から CDI に移行してから、この種のエラーが発生し始めたので、AoP / インジェクションがクラスを台無しにしているのではないかと思います。

しかし、私はその証拠を持っていません。また、解決策もありません。

責任あるコード:

public User getByLoginPasswdValid(String login, String passwd) {
    TypedQuery<User> q = em.createNamedQuery("User.findByLoginPasswdValid", User.class);
    q.setParameter("login", login);
    q.setParameter("passwd", passwd);
    List<User> results = q.getResultList();
    if (results.isEmpty()) {
        return null;
    }
    return results.get(0);
}

で失敗しreturn results.get(0);ます。デバッガーは、リストが有効であること、User オブジェクトがあること、適切な値があることなどを確認します...

4

1 に答える 1

6

複数のクラスローダーがある場合、同じ名前の 2 つのクラスを同時にロードできます。これらの 2 つのクラスは互換性がありません。残念ながら、 ClassCastException は、クラスが同じ名前を持っていても、それらが同じクラスではなく、異なるクラス ローダーを持っていることを示すものではありません。

于 2013-09-03T09:32:27.417 に答える