question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

spring boot with dubbo 2.6.3, cause ‘ Cannot initialize context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml’

See original GitHub issue

Environment

  • Dubbo version: 2.6.3
  • Operating System version: Linux ubuntu 4.9.0
  • Java version: 1.8
  • tomcat-7.0.82.4
  • spring boot 2.0.1.RELEASE

Steps to reproduce this issue

a web spring boot project use dubbo as a consumer,when deploy it to tomcat-7.0.82.4 ,start the applicaton failed, but it start success in IDE without tomcat

Pls. provide [GitHub address] to reproduce this issue.

Expected Result

web project start success

Actual Result

failed

If there is an exception, please attach the exception trace:

[ERROR] - 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:262)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:103)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5110)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5633)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:1015)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:991)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
        at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1296)
        at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2038)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)

Issue Analytics

  • State:closed
  • Created 5 years ago
  • Comments:9 (3 by maintainers)

github_iconTop GitHub Comments

3reactions
saillencommented, Mar 5, 2019

dubbo 2.6.3 默认添加了 web-fragment.xml,这个特性基于 servlet 3.0 ,容器会自动扫描这个文件,dubbo-fragment.xml 里面添加一个ContextLoaderListener。Spring Boot 2.0 也基于 Servlet 3.0 添加这个listener,这样就会报错,算是Dubbo的bug。添加一个web.xml 关闭这个特性就好了。

0reactions
zhangsongyangcommented, Feb 25, 2019

有同样问题,回退到2.6.2就好了,未有任何改动。但是为什么2.6.5就不行

Read more comments on GitHub >

github_iconTop Results From Across the Web

[GitHub] chenlushun commented on issue #2535: spring boot with ...
... context because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml'.
Read more >
spring - Cannot initialize context, already a root application ...
IllegalStateException : Cannot initialize context because there is already a root application context present - check whether you have multiple ...
Read more >
Spring Security : check whether you have multiple ...
IllegalStateException : Cannot initialize context because there is already a root application context present - check whether you have multiple ...
Read more >
Spring created multiple ContextListner? - Forums - Liferay
... because there is already a root application context present - check whether you have multiple ContextLoader* definitions in your web.xml! java.lang.
Read more >
java.lang.illegalargumentexception: could not resolve ...
springboot 启动时会检索@Value 对应配置文件中的key,当该key不存在时就会 ... To display the conditions report re-run your application with 'debug' enabled.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found