我正在将tomcat7中的应用程序移植到tomcat6,因为tomcat 7还不支持CloudBees,这是我正在考虑的PAAS。
我正在移植到tomcat 6.035。我认为el-api.jar在我的java-ee依赖项和tomcat中都是我的问题,但我看不出如何解决它。错误和我的pom.xml的一个片段如下:
POM :(我认为这些是与el-api相关的唯一两个依赖项。我删除了另一个,并将java-ee依赖项作为“提供”。
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.faces</artifactId>
<version>2.1.11</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>6.0</version>
<scope>provided</scope>
</dependency>
严重:部署期间出现严重错误: java.lang.LinkageError:加载器约束违规:解析接口方法时“javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax / el / ExpressionFactory;”当前类的类加载器(org / apache / catalina / loader / WebappClassLoader的实例),com / sun / faces / config / ConfigureListener,以及用于解析的类加载器(org / apache / catalina / loader / StandardClassLoader的实例) class,javax / servlet / jsp / JspApplicationContext,为签名中使用的javax / el / ExpressionFactory类型提供不同的Class对象 at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:695) at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:246) 在org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4206) 在org.apache.catalina.core.StandardContext.start(StandardContext.java:4705) 在org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) 在org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 在org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) 在org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943) 在org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778) 在org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504) 在org.apache.catalina.startup.HostConfig.start(HostConfig.java:1317) 在org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:324) 在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1065) 在org.apache.catalina.core.StandardHost.start(StandardHost.java:840) 在org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1057) 在org.apache.catalina.core.StandardEngine.start(StandardEngine.java:463) 在org.apache.catalina.core.StandardService.start(StandardService.java:525) 在org.apache.catalina.core.StandardServer.start(StandardServer.java:754) 在org.apache.catalina.startup.Catalina.start(Catalina.java:595) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289) 在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414)
答案 0 :(得分:1)
你是对的,这确实是问题,解决问题的方法是从你的网络应用程序中删除它。