【发布时间】:2011-12-06 09:36:17
【问题描述】:
我在 GlassFish(ver.3) 应用服务器中使用 primefaces (ver 2.x) 和 Eclipse Link(ver 2 JPA 2.0) 开发了一个 JSF(2.1) 应用程序 (JavaEE5)。现在我需要在 WebLogic Server(10.x or11) 中安装应用程序。当我尝试在 Weblogics Web 界面上安装应用程序时,它会显示一条大错误消息 如何将我的应用程序从一个应用程序服务器转移到另一个应用程序服务器? IDE Netbeans 7.0 项目的 lib 中包含的 JSF 2.1 primefaces 库
错误信息是这样开始的
Message icon - Error Exception in AppMerge flows' progression
Message icon - Error Exception in AppMerge flows' progression
Message icon - Error Error loading the persistence descriptor WEB-INF/classes/META-INF/persistence.xml from the module Lee5.war.
See the following stack trace for nested errors:
weblogic.descriptor.DescriptorException: VALIDATION PROBLEMS WERE FOUND D:\bea\user_projects\domains\base_domain\weblogic.utils.classloaders.GenericClassLoader@1702c48
finder: weblogic.utils.classloaders.CodeGenClassFinder@44757a
annotation: \WEB-INF\classes\META-INF\persistence.xml:2:3:2:3:
problem: cvc-attribute.4: The value '2.0' does not equal the fixed value '1.0' of attribute 'version':<weblogic.utils.classloaders.GenericClassLoader@1702c48
finder: weblogic.utils.classloaders.CodeGenClassFinder@44757a annotation: /WEB-INF/classes/META-INF/persistence.xml:2:3>
at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:245)
at weblogic.descriptor.internal.MarshallerFactory$1.evaluateResults(MarshallerFactory.java:231)
at weblogic.descriptor.internal.MarshallerFactory$1.createDescriptor(MarshallerFactory.java:155)
at weblogic.descriptor.BasicDescriptorManager.createDescriptor(BasicDescriptorManager.java:323)
at weblogic.application.descriptor.AbstractDescriptorLoader2.getDescriptorBeanFromReader(AbstractDescriptorLoader2.java:788)
at weblogic.application.descriptor.AbstractDescriptorLoader2.createDescriptorBean(AbstractDescriptorLoader2.java:411)
at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBeanWithoutPlan(AbstractDescriptorLoader2.java:759)
at weblogic.application.descriptor.AbstractDescriptorLoader2.loadDescriptorBean(AbstractDescriptorLoader2.java:768)
at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptor(AbstractPersistenceUnitRegistry.java:177)
at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:101)
【问题讨论】:
-
我没有一个好的答案,但看起来问题出在 WebLogic 类加载器上。 WebLogic 与其他应用程序服务器一样,有自己的类加载器和他们自己的内置库包,它们的类加载器会优先处理这些包。从 Tomcat 迁移到 JBoss 时,我遇到了类似的问题,因为 JBoss 5 类加载器正在加载其捆绑的 JSF 1.2 版本,而不是我在 WEB-INF/lib 中拥有的 JSF 2.0。
-
尝试在 Tomcat 7 上运行您的应用程序,因为它没有预先捆绑的库,并且其类加载器将首先在
WEB-INF/lib中查找 JAR 文件。这将帮助您缩小问题范围。如果它在 Tomcat 上运行,那么我们必须弄清楚 WebLogic 中加载的 JSF 和 JPA 版本。
标签: jsf-2 primefaces eclipselink glassfish-3 weblogic-10.x