【问题标题】:JSF 2 OpenJPA 2 Glassfish 3.1 WEB9031 ErrorJSF 2 OpenJPA 2 Glassfish 3.1 WEB9031 错误
【发布时间】:2011-04-11 14:03:26
【问题描述】:

我收到了这个错误,根据 Apache 支持,这是一个与 Glassfish 而不是 OpenJPA 相关的问题:

java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [org.apache.openjpa.util.LongId], because it has not yet been started, or was already stopped

堆栈跟踪是:

Caused by: java.lang.IllegalStateException: WEB9031: WebappClassLoader unable to load resource [org.apache.openjpa.util.LongId], because it has not yet been started, or was already stopped
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1410)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1368)
    at com.ckd.model.BookModel.pcNewObjectIdInstance(BookModel.java)
    at org.apache.openjpa.enhance.PCRegistry.newObjectId(PCRegistry.java:138)
    at org.apache.openjpa.meta.MetaDataRepository.processRegisteredClass(MetaDataRepository.java:1693)
    at org.apache.openjpa.meta.MetaDataRepository.processRegisteredClasses(MetaDataRepository.java:1643)
    ... 112 more

有没有人遇到过这种情况以及如何解决?最近几天我一直在这个问题上。

可以在此处找到与此问题相关的另一篇文章:JSF 2: h:link and getrowdata

【问题讨论】:

    标签: jsf-2 jpa-2.0 glassfish-3


    【解决方案1】:

    上述错误与 OpenJPA 增强器的问题有关。当您执行 Sun 的 JDK 时,默认情况下会启动 OpenJPA 的动态增强器。反过来,此操作会填充 Glassfish 的类加载器类 - 因此,WEB9031 错误。

    对于那些遇到同样问题的人,一个简单的解决方法是在构建时进行增强 - 我在 ANT 中使用 org.apache.openjpa.ant.PCEnhancerTask 进行了 - 并将此属性添加到您的 persistence.xml 以关闭动态增强器:<property name="openjpa.DynamicEnhancementAgent" value="false"/>.

    此外,将它也放入您的 persistence.xml 中也无妨<property name="openjpa.RuntimeUnenhancedClasses" value="unsupported" />

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-26
      • 1970-01-01
      • 2011-05-30
      • 2013-11-06
      • 1970-01-01
      相关资源
      最近更新 更多