我使用 Java EE 7 和 Hibernate 4.2.2 和 Glassfish 4 做了一个小型测试项目。
这是我的 pom.xml (网络)
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-web-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>br.com.myproject</groupId>
<artifactId>escola-ejb</artifactId>
<version>1.0</version>
</dependency>
</dependencies>
ejb
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!--Hibernate-->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.2.2.Final</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>4.2.2.Final</version>
<scope>compile</scope>
</dependency>
它只有一个名为 Student 的实体。还有一些带有列表、创建和编辑的杂乱页面。我可以编译和部署,但是当我尝试打开列表列表页面(由 netbeans 7.3.1 生成的所有页面,带有从实体模型生成 JSF 页面的选项)时,我收到了一个错误:
A system exception occurred during an invocation on EJB StudentFacade, method: public java.util.List br.com.myproject.ejb.facade.AbstractFacade.findRange(int[]).
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.EJBLocalObjectInvocationHandler.invoke(EJBLocalObjectInvocationHandler.java:220)
at com.sun.ejb.containers.EJBLocalObjectInvocationHandlerDelegate.invoke(EJBLocalObjectInvocationHandlerDelegate.java:88)
(...)
如果我将 persistence.xml 更改为 Eclipse 链接,它可以正常工作。但是我回滚到休眠状态。我得到了这个错误。
我用谷歌搜索了很多,但我找不到任何信息,因为 Java EE 7 是一项新技术。