युद्ध की तैनाती टॉमकैट में असफल नहीं हो सकती क्योंकि यह संदर्भ को प्रारंभिक नहीं कर सकता है क्योंकि पहले से ही एक रूट एप्लिकेशन संदर्भ मौजूद है
मैं कुछ दिनों से इस पर अपना सिर पीट रहा हूं। और मैं वास्तव में यह नहीं समझता कि यह त्रुटि कहाँ से आ रही है। मैं पहले से ही एसओ, इस और इस पर इस बारे में कुछ सूत्र का पालन कर चुका हूं
26-Dec-2020 12:48:18.633 SEVERE [main] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [org.springframework.web.context.ContextLoaderListener]
java.lang.IllegalStateException: Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml!
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:263)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4714)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5177)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:183)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:717)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:690)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:706)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:978)
at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1848) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
मैंने एपीआई का एक सेट लिखा है और मैं इसे टॉमकैट सर्वर पर तैनात करने की कोशिश कर रहा हूं। और परिनियोजन के दौरान मेरा आवेदन शुरू हो रहा है, लेकिन कुछ अन्य संदर्भ के कारण पहले से ही गर्भपात हो रहा है।
मेरा एप्लिकेशन सफलतापूर्वक प्रारंभ क्यों नहीं हो रहा है? मेरे पास मेरे वेबैप फ़ोल्डर में केवल एक युद्ध फाइल मौजूद है और मैंने बाकी को हटा दिया है।
मुझे यह भी समझ में नहीं आ रहा है कि यह किस web.xml फ़ाइल की बात कर रहा है।
जवाब
अंत में मुझे अपराधी मिल गया। मुझे नहीं पता कि मुझे ऐसा क्यों लगता है कि स्प्रिंग सेशन के डॉक्यूमेंटेशन को बहुत काम चाहिए। मैं गलत हो सकता हूँ।
वैसे भी, मैं इनिशियलाइज़र का उपयोग कर रहा हूँ, जो AbstractHttpSessionApplicationInitializer
कि प्रलेखन में उल्लिखित है।
public class SessionConfigInitializer extends AbstractHttpSessionApplicationInitializer {
public SessionConfigInitializer() {
super(SessionConfig.class);
}
}
जब मैंने इसमें देखा तो AbstractHttpSessionApplicationInitializer
यह servletContext.addListener(new ContextLoaderListener(rootAppContext));
स्टार्टअप पर कर रहा था ।
इस स्थिति में पोस्टिंग अगर कोई और इस स्थिति में आता है तो उनकी मदद हो सकती है।
आपको यह देखना होगा कि आपने अपना टॉमकैट कहां स्थापित किया है और वेबैप फ़ोल्डर देखें , इस फ़ोल्डर में सभी वेब एप्लिकेशन हैं। मेरे मामले में उदाहरण के लिए: C: \ Program Files \ Apache Software Foundation \ Apache Tomcat 8.0.27 \ webapps
या देखें C: \ Program Files \ Apache Software Foundation \ Apache Tomcat 8.0.27 \ conf \ Catalina \ localhost अगर कोई अन्य webapplication tomcat सर्वर फ़ोल्डर के बाहर मौजूद है।