在 weblogic 12.1.1 中部署 jsf jpa web 应用程序
deploying jsf jpa web application in weblogic 12.1.1
我正在使用 Maven、JSF 2.2、JSTL 1.2.1、JPA 2.1、Spring 4.2.9、Hibernate-jpa-api-2.1 开发 Web 应用程序
我可以在 Tomcat 和 运行 中毫无问题地部署我的应用程序,但我也想在 weblogic 12.1.1 中部署,但我在启动我的应用程序服务器时遇到了一些问题:
nested exception is java.lang.NoSuchMethodError : javax.persistance.Table.indexes()[Ljavax/persistence/Index;
....
org.springframework.beans.factory.BeanCreationException : Error creatin bean with name 'myEmf' defined in class path resource [jpaConfig.xml]
....
Error javax.entreprise.resource.webcontainer.jsf.application
我在部署的 war 中创建了一个 weblogic.xml,如下所示:
<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
<package-name>com.bea.faces.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
</prefer-application-resources>
错误消息"java.lang.NoSuchMethodError"表示与Weblogic 的JPA 2.0 库发生库冲突。由于您为此打包了自己的库,请尝试将 "javax.persistence.*" 添加到 weblogic.xml
选项 2:将 JPA 2.1 支持添加到 weblogic 类路径
在您的 domain/bin/setDomainEnv(.cmd 用于 windows,.sh 用于 unix)中添加一个 PRE_CLASSPATH 变量。在 windows 系统上,它看起来像这样:
set PRE_CLASSPATH=C:/weblogic_12130/oracle_common/modules/javax.persistence_2.1.jar;C:/weblogic_12130/wlserver/modules/com.oracle.weblogic.jpa21support_1.0.0.0_2-1.jar
我正在使用 Maven、JSF 2.2、JSTL 1.2.1、JPA 2.1、Spring 4.2.9、Hibernate-jpa-api-2.1 开发 Web 应用程序 我可以在 Tomcat 和 运行 中毫无问题地部署我的应用程序,但我也想在 weblogic 12.1.1 中部署,但我在启动我的应用程序服务器时遇到了一些问题:
nested exception is java.lang.NoSuchMethodError : javax.persistance.Table.indexes()[Ljavax/persistence/Index; .... org.springframework.beans.factory.BeanCreationException : Error creatin bean with name 'myEmf' defined in class path resource [jpaConfig.xml] .... Error javax.entreprise.resource.webcontainer.jsf.application
我在部署的 war 中创建了一个 weblogic.xml,如下所示:
<prefer-application-packages>
<package-name>javax.faces.*</package-name>
<package-name>com.sun.faces.*</package-name>
<package-name>com.bea.faces.*</package-name>
</prefer-application-packages>
<prefer-application-resources>
<resource-name>javax.faces.*</resource-name>
<resource-name>com.sun.faces.*</resource-name>
<resource-name>com.bea.faces.*</resource-name>
<resource-name>META-INF/services/javax.servlet.ServletContainerInitializer</resource-name>
</prefer-application-resources>
错误消息"java.lang.NoSuchMethodError"表示与Weblogic 的JPA 2.0 库发生库冲突。由于您为此打包了自己的库,请尝试将 "javax.persistence.*" 添加到 weblogic.xml
选项 2:将 JPA 2.1 支持添加到 weblogic 类路径
在您的 domain/bin/setDomainEnv(.cmd 用于 windows,.sh 用于 unix)中添加一个 PRE_CLASSPATH 变量。在 windows 系统上,它看起来像这样:
set PRE_CLASSPATH=C:/weblogic_12130/oracle_common/modules/javax.persistence_2.1.jar;C:/weblogic_12130/wlserver/modules/com.oracle.weblogic.jpa21support_1.0.0.0_2-1.jar