WTP - Maven Compile/Package - Probleme mit javax.el.api

alan79

Mitglied
Hallo Forum

Ich hab einwenig Probleme im Umgang mit der lib javax.el.api.

Diese wird ja mit Tomcat bereits mitgeliefert und darf daher im war package nicht enthalten sein. In Eclipse WTP funktioniert alles soweit wunderbar.

Wenn ich dann aber mit Maven die Applikation packetiere reklamiert Maven wiefolgt:

package javax.el does not exist

Ich habe dann versucht im pom.xml die lib einzubinden:
Code:
<dependency>
			<groupId>javax.el</groupId>
			<artifactId>el-api</artifactId>
			<version>1.0</version>
			<scope>provided</scope>
		</dependency>

Danach funktioniert die Maven packetierung. WTP meckert dann jedoch beim Tomcat start:

Code:
java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/el/ExpressionFactory"
	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:1847)
	at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:890)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1354)
	at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1233)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Class.java:2427)
	at java.lang.Class.getDeclaredMethods(Class.java:1791)
	at org.apache.myfaces.config.annotation.NoInjectionAnnotationLifecycleProvider.destroyInstance(NoInjectionAnnotationLifecycleProvider.java:92)
	at org.apache.myfaces.webapp.AbstractMyFacesListener.doPreDestroy(AbstractMyFacesListener.java:61)
	at org.apache.myfaces.webapp.StartupServletContextListener.doPredestroy(StartupServletContextListener.java:137)
	at org.apache.myfaces.webapp.StartupServletContextListener.contextDestroyed(StartupServletContextListener.java:118)
	at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:3882)
	at org.apache.catalina.core.StandardContext.stop(StandardContext.java:4523)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:4387)
	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:578)
	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:597)
	at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
	at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

Soweit ich die Maven scopes verstanden habe sollte "provided" nur für die Kompilierung verwendent werden nicht aber für die Paketierung. WTP scheint das jedoch nicht zu beachten.

Wie muss ich die el-api genau in mein Projekt einbinden. Vielen Dank für einen Tipp.

Grüsse
Alan
 
hab bemerkt, dass die "Maven Integration for WTP" in Eclipse nicht installiert war.
Installieren und "Update Project Configuration" hat das Problem gelöst!
 

Neue Beiträge

Zurück