我正在使用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中部署,但我在启动我的应用服务器时遇到了一些问题:
嵌套异常是java.lang.NoSuchMethodError:javax.persistance.Table.indexes()[Ljavax / persistence / Index; .... org.springframework.beans.factory.BeanCreationException:类路径资源[jpaConfig.xml]中定义的名为'myEmf'的创建者bean错误 .... 错误javax.entreprise.resource.webcontainer.jsf.application
我在部署的战争中创建了一个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>
答案 0 :(得分:0)
错误消息&#34; java.lang.NoSuchMethodError&#34;表示与Weblogic的JPA 2.0库发生库冲突。由于您要为此打包自己的库,请尝试添加&#34; javax.persistence。*&#34;到weblogic.xml
选项2:将JPA 2.1支持添加到weblogic类路径
在您的域/ bin / setDomainEnv(Windows的.cmd,unix的.sh)中添加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