在 glassfish 3.1 中使用 WAB 的 JPA
我尝试创建 JPA 持久性模块并从 glassfish 3.1 中的 OSGI WAB 访问它。 在非 OSGI WAR 中执行此操作的方法是将持久性 jar 复制到 WAR 中。
但是,当我使用 jpa jar 部署 OSGI WAB 时,出现异常:
[#|2011-02-01T18:29:10.035+0200|SEVERE|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 at org.glassfish.osgijavaeebase.OSGiBundleArchive$1.run(OSGiBundleArchive.java:366)
JPA jar 是否应该在清单中包含一些特殊条目?它必须被定义为OSGI包吗?请咨询。
更新: 问题已解决:
- 为了避免 ZipException,我删除了“.”。来自捆绑清单中的捆绑类路径。
- 为了获得更详细的异常日志,我将 Glassfish 3.1 版本升级到 41(我使用的是版本 35)。
- 在修复了几个类路径问题后,JPA 与 Hibernate 捆绑包内开始工作
I try to create JPA persistency module and access it from OSGI WAB in glassfish 3.1.
The way to do it in non-OSGI WAR is to copy the persistency jar into WAR.
However when I deploy the OSGI WAB with jpa jar, I get the exception:
[#|2011-02-01T18:29:10.035+0200|SEVERE|glassfish3.1|javax.enterprise.system.std.com.sun.enterprise.server.logging|_ThreadID=17;_ThreadName=Thread-1;|java.lang.RuntimeException: java.util.zip.ZipException: duplicate entry: META-INF/maven/com.test/test-web/pom.properties
at org.glassfish.osgijavaeebase.OSGiBundleArchive$1.run(OSGiBundleArchive.java:366)
Should the JPA jar contain some special entries in a manifest? It must be defined as OSGI bundle? Please consult.
Update:
The issues was resolved:
- To avoid ZipException, I removed the "." from Bundle-Classpath in bundle Manifest.
- To get more detailed logs with exceptions, I upgraded Glassfish 3.1 build to 41 (I was working with build 35).
- JPA with Hibernate inside bundle started to work after I fixed several classpath problems
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
要在 WAB 中使用 JPA,您只需将包含实体和 persistence.xml 的持久性 jar 放入 WAB 的 WEB-INF/lib/ 中。请告诉我们 WAB 中的 Bundle-ClassPath 清单条目是什么样子的。我不看这个论坛;我看glassfish论坛。如果您希望更快得到答复,可以将您的问题发布到[电子邮件受保护]吗?
To use JPA in a WAB, you just have to drop the persistence jar containing entities and persistence.xml in WEB-INF/lib/ of your WAB. Tell us how the Bundle-ClassPath manifest entry in the WAB looks like. I don't watch this forum; I watch glassfish forum. Can you post your question at [email protected] if you want faster response?