Linkage error - ExpressionFactory violates loader constraints

From Foochal

Jump to: navigation, search

Error when running JBoss Seam2 in tomcat

SEVERE: Exception sending context initialized event to listener instance of class org.jboss.seam.servlet.SeamListener
java.lang.RuntimeException: Could not create Component: org.jboss.seam.core.expressions
	at org.jboss.seam.init.Initialization.addComponent(Initialization.java:989)
	at org.jboss.seam.init.Initialization.installComponents(Initialization.java:911)
	at org.jboss.seam.init.Initialization.init(Initialization.java:589)
	at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3830)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4337)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
	at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
	at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
	at org.apache.catalina.core.StandardService.start(StandardService.java:516)
	at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
	at org.apache.catalina.startup.Catalina.start(Catalina.java:566)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
Caused by: java.lang.LinkageError: Class javax/el/ExpressionFactory violates loader constraints
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
	at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1817)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:872)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1325)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2395)
	at java.lang.Class.privateGetPublicMethods(Class.java:2519)
	at java.lang.Class.privateGetPublicMethods(Class.java:2535)
	at java.lang.Class.getMethods(Class.java:1406)
	at org.jboss.seam.Component.hasAnnotation(Component.java:1070)
	at org.jboss.seam.Component.<init>(Component.java:229)
	at org.jboss.seam.Component.<init>(Component.java:217)
	at org.jboss.seam.init.Initialization.addComponent(Initialization.java:974)
	... 18 more

Solution

Change el-api from compile to provided.

<dependency>
  <groupId>javax.el</groupId> 
  <artifactId>el-api</artifactId>
  <scope>provided</scope>
  <version>1.2</version>
</dependency>

Personal tools