【问题标题】:PersistenceProvider not found Exception in JBOSS AS 5.1.0 GA在 JBOSS AS 5.1.0 GA 中找不到 PersistenceProvider 异常
【发布时间】:2013-04-19 09:31:47
【问题描述】:

我正在尝试在 Linux 中使用 eclipse 在 JBOSS AS 5.1.0 GA 中部署产品。

之前是在tomcat 6上成功执行的。 在部署时我遇到了很多错误。我已经一一解决了。

但是现在由于 PersistenceProvider 引发了 ClassNotFoundException。

我的产品环境是 JPA 1.0。我正在使用 toplink-essentials.jar、toplink-essentials-agent.jar。 (我的toplink版本是2.0)

请查看错误描述...

11:46:08,276 ERROR [AbstractKernelController] Error installing to Start: name=persistence.unit:unitName=#Entity state=Create java.lang.ClassNotFoundException: oracle.toplink.essentials.PersistenceProvider from BaseClassLoader@12bb617{VFSClassLoaderPolicy@bfa9d6{name=vfsfile:/opt/jboss-5.1.0.GA/server/default/deploy/iportman_gpl.war/ domain=ClassLoaderDomain@16877f8{name=DefaultDomain parentPolicy=BEFORE parent=org.jboss.bootstrap.NoAnnotationURLClassLoader@1837697} roots=[MemoryContextHandler@19344978[path= context=vfsmemory://3j011-idx41v-hfxjen4j-1-hfxjf9qd-2a real=vfsmemory://3j011-idx41v-hfxjen4j-1-hfxjf9qd-2a], FileHandler@22157425[path=iportman_gpl.war/WEB-INF/classes context=file:/opt/jboss-5.1.0.GA/server/default/deploy/ real=file:/opt/jboss-5.1.0.GA/server/default/deploy/iportman_gpl.war/WEB-INF/classes/]

这是我尝试部署我的 WAR 文件项目时出现的唯一错误。

在执行时,jboss 正在加载这两个 jar。 (toplink-essentials.jar、toplink-essentials-agent.jar)。 (这也显示在错误控制台上)

DelegatingHandler@13596360[path=iportman_gpl.war/WEB-INF/lib/toplink-essentials.jar context=file:/opt/jboss-5.1.0.GA/server/default/deploy/ real=file:/opt/jboss-5.1.0.GA/server/default/deploy/iportman_gpl.war/WEB-INF/lib/toplink-essentials.jar] DelegatingHandler@32401617[path=iportman_gpl.war/WEB-INF/lib/toplink-essentials-agent.jar context=file:/opt/jboss-5.1.0.GA/server/default/deploy/ real=file:/opt/jboss-5.1.0.GA/server/default/deploy/iportman_gpl.war/WEB-INF/lib/toplink-essentials-agent.jar]

但它仍然显示错误。

当我让谷歌了解这个问题时,我看到了一些解释,例如..“可能是加载了两个 PersistenceProvider 类,或者 jboss 也加载了它们的 JPA 类”。

但我在 jboss-classloading.xml

中设置了 parent-first="false"

下面的代码在我的 /WEB-INF/jboss-classloading.xml 中

<?xml version="1.0" encoding="UTF-8"?>
<classloading xmlns="urn:jboss:classloading:1.0"
export-all="NON_EMPTY"
import-all="true"
parent-first="false">
</classloading>

我还在 /WEB-INF/classes/META-INF/persistence.xml

中声明了以下代码
 <persistence-unit name="Entity" transaction-type="RESOURCE_LOCAL">
 <provider>oracle.toplink.essentials.PersistenceProvider</provider>

请帮我解决问题。 我在 JBOSS 社区发布了同样的问题以寻求他们的帮助,但我没有得到任何回应。

(persistence.xml的详细说明和所有jar的列表,请看Jboss community link

所以,任何人都可以帮助我找出问题。 任何建议都会对我有很大帮助... 在此先感谢..

(对不起,我的英语不好)

【问题讨论】:

  • 请给个建议。我的工作已经完全处于暂停状态。请拜托..

标签: jboss5.x classnotfoundexception toplink-essentials jpa-1.0


【解决方案1】:

当我删除 persistence.xml&lt;provider&gt; 标记之间的空格时,上述问题得到解决,如下所示。

&lt;provider&gt;oracle.toplink.essentials.PersistenceProvider&lt;/provider&gt;

【讨论】:

    猜你喜欢
    • 2014-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 2023-03-09
    相关资源
    最近更新 更多