我有2个EAR 1_EAR和2_EAR(这些有websearvices和其他代码)。现在我有1个项目DB_prj用于与database交互。现在所有项目1_EAR,2_EAR,DB_prj在各自的meta中都有一个persistence.xml -inf folder.Now只有1_EAR和2_EAR有web.xml。 2_EAR是由我们的团队开发的新项目。 1_EA工作正常。现在当我尝试使用开发的类删除任何记录,我放置在2_EAR我的代码挂起并超时。要删除一条记录我从DB_prj调用API,从1_EAR.In中调用它工作正常1_EAR和2_EAR我的共同点。 1_EAR的web.xml还包含2_EAR的web.xml中不存在的许多其他内容。
<persistence-context-ref>
<persistence-context-ref-name>persistence/XYZPersist</persistence-context-ref-name>
<persistence-unit-name>XYZPersist</persistence-unit-name>
</persistence-context-ref>
任何人都可以帮我解决这个问题吗?上面的代码我在2月份的web.xml中放了somone回复我的帖子@ problem with JNDI
答案 0 :(得分:0)
我的赌注是你的EAR#2通过JNDI解析上下文,但是上下文被EAR#1绑定,带有EAR#1类加载器;因此,在持久性API的腹部某处,您可能会得到一个ClassCastException,因为该类虽然具有相同的名称和包,却由不同的类加载器加载。
我的观点是两个EAR的持久性单元应该有不同的JNDI名称。从你的帖子看起来它们是相同的。
(实际上,提及插入/更新工作正常与我的假设相矛盾,但谁知道。)