, ग्रहण Helios 3.6 के नवीनतम संस्करण में नवीनीकरण के बाद M2E 1.0, डब्ल्यूटीपी 3.2.5 और मेरे Maven भागने की कोशिश कर परियोजना जो JSF 2.1.3 और स्प्रिंग 3बिल्ला 7 पर उपयोग करता है, मैं निम्न अपवाद हो रही है:
java.lang.ClassNotFoundException: javax.servlet.jsp.el.ImplicitObjectELResolver$ImplicitObjects$4
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1678)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
at org.apache.catalina.startup.ContextConfig.checkHandlesTypes(ContextConfig.java:2006)
at org.apache.catalina.startup.ContextConfig.processAnnotationsStream(ContextConfig.java:1969)
at org.apache.catalina.startup.ContextConfig.processAnnotationsJar(ContextConfig.java:1858)
at org.apache.catalina.startup.ContextConfig.processAnnotationsUrl(ContextConfig.java:1826)
at org.apache.catalina.startup.ContextConfig.processAnnotations(ContextConfig.java:1812)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1306)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:896)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:322)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5103)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:774)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1033)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:291)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:727)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:148)
at org.apache.catalina.startup.Catalina.start(Catalina.java:621)
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:322)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:450)
java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:693)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:243)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Dec 17, 2011 4:56:04 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class com.sun.faces.config.ConfigureListener
java.lang.RuntimeException: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:292)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4723)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5226)
at org.apache.catalina.core.StandardContext$1.call(StandardContext.java:5221)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" the class loader (instance of org/apache/catalina/loader/WebappClassLoader) of the current class, com/sun/faces/config/ConfigureListener, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature
at com.sun.faces.config.ConfigureListener.registerELResolverAndListenerWithJsp(ConfigureListener.java:693)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:243)
... 8 more
निम्नलिखित मीटर है Maven के लिए y विन्यास:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.0.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-api</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.sun.faces</groupId>
<artifactId>jsf-impl</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
मैं एक जार फ़ाइल याद आ रही है, या एक जार का असंगत संस्करण का उपयोग कर?
कृपया सलाह दें, धन्यवाद।
अद्यतन:
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>2.2.2</version>
<scope>provided</scope>
</dependency>
मुझे लगता है कि है कि वे द्वारा प्रदान की जार के साथ परस्पर विरोधी गया: क्या मैं अब तक प्राप्त है कि मैं पोम फ़ाइल से निम्नलिखित निर्भरता को हटाने के द्वारा ठीक से चलाने के लिए आवेदन प्राप्त है कंटेनर।
क्या मैं पता करने की जरूरत: javax.servlet.jsp-api
, मेरे पोम फाइल करने के लिए javax.el-api
प्रदान की या मैं उन्हें बिल्कुल भी जोड़ने की जरूरत नहीं है के रूप में:
1- मैं निर्भरता को जोड़ने के लिए है?
2- मैं उन दो निर्भरता को जोड़ने के लिए है, तो मैं कैसे उन्हें ठीक से एक तरीका है कि वे बिल्ला जार के साथ संघर्ष नहीं होगा में जोड़ना चाहिए, कौन-सा संस्करण है, जिसका अर्थ है, और के रूप में प्रदान की गई या नहीं मैं निर्भरता को चिह्नित करना चाहिए?
और महत्वपूर्ण सवाल मैं उन्हें जोड़ने के लिए, मैं क्यों हैं, क्योंकि वे कंटेनर द्वारा प्रदान की जाती हैं उन्हें जोड़ने के महत्व क्या है क्या करना है है, मैं अब तक समझते हैं, कि मैं जोड़ने की जरूरत है javax.servlet-api
निर्भरता और इसे प्रदान के रूप में चिह्नित करें क्योंकि मैं कुछ कक्षाओं में servlets का उपयोग कर रहा हूं।
मैं कोई मेवेन लड़का नहीं हूं, इसलिए मुझे यह नहीं पता कि इसे कैसे ठीक किया जाए, लेकिन मैं कम से कम बता सकता हूं कि अपवाद इंगित करता है कि आपके पास अंतिम वेबएप के रनटाइम क्लासपाथ में एकाधिक ईएल एपीआई जेएआर फ़ाइलें हैं (विरोधाभासी वर्ग है 'javax.el' पैकेज)। यदि आप निश्चित हैं कि मेवेन अपना काम सही कर रहा है, तो आपको यह सत्यापित करने की आवश्यकता है कि आपने मैन्युअल रूप से */WEB-INF/lib', 'टोमकैट/lib',' JRE/lib' में कुछ भी नहीं रखा है, 'जेआरई/lib/ext' और कोई अन्य पथ जो वेबपैप के रनटाइम क्लासपाथ द्वारा कवर किया गया है। टॉमकैट 7 पहले से ही सही ईएल 2.2 एपीआई/इम्प्ले के साथ जहाज चलाता है, इसलिए आपको इसे स्वयं (या मेवेन द्वारा) आपूर्ति करने की आवश्यकता नहीं है। – BalusC
@ बालससी तो आपका मतलब है कि मुझे प्रदान की गई अल निर्भरता को हटा देना चाहिए, और केवल जेएसपी-एपीआई और सर्वलेट-एपीआई प्रदान किए गए हैं? –
जैसा कि कहा, मैं कोई मेवेन लड़का नहीं हूँ। मुझे पता नहीं है। आपको यह सत्यापित करने की आवश्यकता है कि मेवेन-निर्मित युद्ध सही है या नहीं और यदि आपने डुप्लीकेट किए गए ईएल एपीआई जेएआर फाइलों के साथ पूर्ववर्ती लाइब्रेरी पथ मैन्युअल रूप से अव्यवस्थित नहीं किया है। – BalusC