0

我正在尝试使用 Facade 连接到数据库。我正在使用 Netbeans 7.3.1 JDK 1.7 和 JAva EE 7。

有一个企业应用程序、一个客户端应用程序、一对 bean 和一个类库。我主要使用 netbeans 中的插入代码方法来创建连接。我收到以下错误:

 java.lang.reflect.InvocationTargetException
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:601)
   at org.glassfish.appclient.client.acc.AppClientContainer.launch(AppClientContainer.java:446)
   at org.glassfish.appclient.client.AppClientFacade.launch(AppClientFacade.java:183)
   atorg.glassfish.appclient.client.AppClientGroupFacade.main(AppClientGroupFacade.java:65)
Caused by: javax.ejb.EJBException
   at com.sun.ejb.containers.EJBContainerTransactionManager.processSystemException(EJBContainerTransactionManager.java:748)
   at com.sun.ejb.containers.EJBContainerTransactionManager.completeNewTx(EJBContainerTransactionManager.java:698)
   at com.sun.ejb.containers.EJBContainerTransactionManager.postInvokeTx(EJBContainerTransactionManager.java:503)
   at com.sun.ejb.containers.BaseContainer.postInvokeTx(BaseContainer.java:4475)
   at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:2009)
   at com.sun.ejb.containers.BaseContainer.postInvoke(BaseContainer.java:1979)
   at com.sun.ejb.containers.EJBObjectInvocationHandler.invoke(EJBObjectInvocationHandler.java:212)
   at com.sun.ejb.containers.EJBObjectInvocationHandlerDelegate.invoke(EJBObjectInvocationHandlerDelegate.java:79)
   at com.sun.proxy.$Proxy299.count(Unknown Source)
   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
   at java.lang.reflect.Method.invoke(Method.java:601)

 Caused by: java.lang.IllegalArgumentException: No [EntityType] was found for the key class [com.javaee.test.db.Questions] in the Metamodel - please verify that the [Entity] class was referenced in persistence.xml using a specific <class>com.javaee.test.db.Questions</class> property or a global <exclude-unlisted-classes>false</exclude-unlisted-classes> element.
   at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entityEmbeddableManagedTypeNotFound(MetamodelImpl.java:173)
   at org.eclipse.persistence.internal.jpa.metamodel.MetamodelImpl.entity(MetamodelImpl.java:193)
   at org.eclipse.persistence.internal.jpa.querydef.CommonAbstractCriteriaImpl.internalFrom(CommonAbstractCriteriaImpl.java:114)
   at org.eclipse.persistence.internal.jpa.querydef.AbstractQueryImpl.from(AbstractQueryImpl.java:246)

我不确定问题到底出在哪里,所以我没有发布任何代码。如果您有提示,我可以记下代码。

4

1 回答 1

1

昨晚我有同样的错误。我想我们上的是同一堂课!要修复它,请展开 ejb 项目 -> 配置文件 -> persistence.xml

在 General 下,有一个选中的复选框“Include All Entity Classes in _ Module”。我取消选中该框,然后手动添加每个类。这处理了异常。希望这可以帮助。

于 2013-11-11T19:47:53.300 回答