javax.el.E​​xpressionFactory的Tomcat6 linkageError

时间:2012-09-02 07:40:27

标签: jsf java-ee tomcat maven cloudbees

我正在将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)

1 个答案:

答案 0 :(得分:1)

你是对的,这确实是问题,解决问题的方法是从你的网络应用程序中删除它。