相关疑难解决方法(0)

跨类加载器?

我怎样才能做到这一点:

class Foo {
  public static Foo get() throws Exception {
    ClassLoader cl = new URLClassLoader(new URL[]{"foo.jar"}, null); // Foo.class is in foo.jar
    return (Foo)cl.loadClass("Foo").newInstance(); // fails on class cast
  }
}
Run Code Online (Sandbox Code Playgroud)

我需要的是让JVM从cl中考虑Foo实例,就好像它是来自执行代码的类加载器的Foo实例一样.

我见过这些方法,对我来说都没有好处(上面的例子是玩具示例):

  1. 通过类加载器加载类(或单独的接口),类加载器是调用代码和创建的类加载器的父级
  2. 序列化和反序列化对象.

java classloader

25
推荐指数
4
解决办法
1万
查看次数

具有相同类对象的java.lang.ClassCastException

这段代码使我感到恼火,有时它起作用,而另一些时候却不起作用!

NamedQuery :(名称=“ User.findByLogin”,查询=“从用户u在哪里选择u.login =:login”)

public User findByLogin(String login) {
        Query query = em.createNamedQuery("User.findByLogin");
        query.setParameter("login", login);
        try {
            return (User) query.getSingleResult();
        } catch (javax.persistence.NoResultException ex) {
            return null;
        }
    }
Run Code Online (Sandbox Code Playgroud)

错误使我发疯!

Avertissement:EJB5184:在EJB UserFacade上调用期间发生系统异常,方法:public dz.admin.entity.User dz.admin.service.UserFacade.findByLogin(java.lang.String)Avertissement:javax.ejb.EJBException .. .. 由以下原因引起:java.lang.ClassCastException:dz.elit.admin.entity.User无法转换为dz.elit.admin.service.UserFacade.findByLogin(UserFacade.java: 45)

stateless-session-bean classcastexception jpql ejb-3.0

1
推荐指数
2
解决办法
1780
查看次数