Zaten bir kök uygulama içeriği mevcut olduğundan, bağlam başlatılamıyor nedeniyle savaşın dağıtılması tomcat'te başarısız oluyor
Birkaç gündür bu konuya kafa tutuyorum. Ve bu hatanın nereden geldiğini gerçekten anlamıyorum. Zaten SO, bu ilgili birkaç konuları takip bu ve bu bir
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)
Bir dizi API yazdım ve onu tomcat sunucusu üzerinden konuşlandırmaya çalışıyorum. Ve dağıtım sırasında başvurum başlıyor, ancak zaten orada olan başka bir bağlam nedeniyle iptal ediliyor.
Başvurum neden başarıyla başlamıyor? Web uygulamaları klasörümde yalnızca bir savaş dosyası var ve geri kalanını kaldırdım.
Ayrıca hangi web.xml dosyasından bahsettiğini de anlamıyorum.
Yanıtlar
Sonunda suçluyu buldum. Neden bahar oturumu dokümantasyonunun çok çalışma gerektirdiğini düşündüğümü bilmiyorum . Yanlış olabilirim.
Her neyse, AbstractHttpSessionApplicationInitializer
belgelerde belirtildiği gibi genişleyen başlatıcı kullanıyorum .
public class SessionConfigInitializer extends AbstractHttpSessionApplicationInitializer {
public SessionConfigInitializer() {
super(SessionConfig.class);
}
}
Ben baktığımda AbstractHttpSessionApplicationInitializer
bunu servletContext.addListener(new ContextLoaderListener(rootAppContext));
başlangıçta yapıyordu .
Başka birinin bu duruma düşmesi durumunda bunu yayınlamak onlara yardımcı olabilir.
Tomcat'inizi nereye yüklediğinizi ve webapp klasörünü görmelisiniz , bu klasörde tüm web uygulamaları vardır. örneğin benim durumumda: C: \ Program Files \ Apache Software Foundation \ Apache Tomcat 8.0.27 \ webapps
veya tomcat sunucu klasörünün dışında başka bir web uygulaması varsa C: \ Program Files \ Apache Software Foundation \ Apache Tomcat 8.0.27 \ conf \ Catalina \ localhost'a bakın .