我在运行我的 eclipselink 项目时遇到此错误。
[EL 警告]: 2008.12.05 11:47:08.056--java.lang.NoClassDefFoundError: org/jboss/resource/adapter/jdbc/ValidConnectionChecker 在尝试 PersistenceLoadProcessor 加载类 com.mysql.jdbc.integration.jboss 时抛出.MysqlValidConnectionChecker。该类被忽略。 线程“main”中的异常 java.lang.NoClassDefFoundError: org/jboss/resource/adapter/jdbc/ValidConnectionChecker 在 java.lang.ClassLoader.defineClass1(本机方法) 在 java.lang.ClassLoader.defineClass(未知来源) 在 java.security.SecureClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.defineClass(未知来源) 在 java.net.URLClassLoader.access$000(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.loadClass(PersistenceUnitProcessor.java:261) 在 org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.initPersistenceUnitClasses(MetadataProcessor.java:247) 在 org.eclipse.persistence.internal.jpa.metadata.MetadataProcessor.processEntityMappings(MetadataProcessor.java:422) 在 org.eclipse.persistence.internal.jpa.deployment.PersistenceUnitProcessor.processORMetadata(PersistenceUnitProcessor.java:299) 在 org.eclipse.persistence.internal.jpa.EntityManagerSetupImpl.predeploy(EntityManagerSetupImpl.java:830) 在 org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.callPredeploy(JPAInitializer.java:101) 在 org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.initPersistenceUnits(JPAInitializer.java:149) 在 org.eclipse.persistence.internal.jpa.deployment.JPAInitializer.initialize(JPAInitializer.java:135) 在 org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:104) 在 org.eclipse.persistence.jpa.PersistenceProvider.createEntityManagerFactory(PersistenceProvider.java:64) 在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) 在 javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60) 在 Main.main(Main.java:32) 引起:java.lang.ClassNotFoundException:org.jboss.resource.adapter.jdbc.ValidConnectionChecker 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClassInternal(未知来源) ... 还有 24 个
有任何想法吗?为什么 eclipselink 需要 jboss 的东西?我需要什么jboss jar。我会使用 open jpa,但由于某种原因,在我的应用程序退出一些持续存在后,它开始出现一堆 stackoverflow 错误。
如果您的项目根本不应该使用 JBoss,但仍然需要一些 JBoss 类,这可能意味着:
- 您的默认服务器是 JBoss(在服务器视图中)
- 或者你的persistence.xml在你
yourProjectEJB/ejbModule/META-INF
确实引用了 JBoss
你能发布你的 persistence.xml 文件吗?如果您也可以发布用于获取 EntityManager 的代码片段,那就更好了。