在玻璃鱼3.1中使用WAB的JPA

时间:2011-02-01 16:34:09

标签: jpa osgi glassfish-3 war

我尝试创建JPA持久性模块,并从glassfish 3.1中的OSGI WAB访问它。 在非OSGI WAR中执行此操作的方法是将持久性jar复制到WAR中。

但是当我使用jpa jar部署OSGI WAB时,我得到了例外:

[#| 2011-02-01T18:29:10.035 + 0200 |严重| glassfish3.1 | javax.enterprise.system.std.com.sun.enterprise.server.logging | _ThreadID = 17; _ThreadName = Thread- 1; | java.lang.RuntimeException:java.util.zip.ZipException:重复条目:META-INF / maven / com.test / test-web / pom.properties     在org.glassfish.osgijavaeebase.OSGiBundleArchive $ 1.run(OSGiBundleArchive.java:366)

JPA jar是否应该在清单中包含一些特殊条目?它必须定义为OSGI包?请咨询。

更新 问题已经解决:

  1. 为了避免ZipException,我删除了“。”来自捆绑清单中的Bundle-Classpath。
  2. 为了获得更多详细的日志,我将Glassfish 3.1版本升级到41(我正在使用build 35)。
  3. 在修复了几个类路径问题后,带有Hibernate内部包的JPA开始工作

1 个答案:

答案 0 :(得分:0)

要在WAB中使用JPA,您只需要在WAB的WEB-INF / lib /中删除包含实体和persistence.xml的持久性jar。告诉我们WAB中的Bundle-ClassPath清单条目是怎样的。我不看这个论坛;我看glassfish论坛。如果您想要更快的回复,可以在users@glassfish.java.net上发布您的问题吗?