이전에 만들어진 스프링 웹 소스를 분석하고 있었다.

소스를 받아서 Tomcat으로 웹 소스를 실행하려니 에러 발생. 아래와 같은 에러가 발생했다.

2012. 7. 9 오후 5:59:38 org.apache.catalina.core.ContainerBase addChildInternal
심각: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/***]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NullPointerException
    at org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:142)
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5274)
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
    ... 11 more
2012. 7. 9 오후 5:59:38 org.apache.catalina.startup.HostConfig deployDescriptor
심각: Error deploying configuration descriptor C:\***\***.xml
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/***]]
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:904)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:618)
    at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:650)
    at org.apache.catalina.startup.HostConfig$DeployDescriptor.run(HostConfig.java:1582)
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
    at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
    at java.util.concurrent.FutureTask.run(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)


위의 문제는 웹 검색을 한 결과 "라이브러리 충돌이 났다"라는 답이 나왔다.


아래의 라이브러리는 M2로서 메이븐 버전입니다. 문제가 있는건 아니지만 아마도 라이브러리 충돌이 나는것 같습니다.  대신 다른 버전의 라이브러리로 사용을 해보시던가 아니면 첨부파일에 있는 예제로 다시 한번 확인 부탁드리겠습니다.


웹 소스에선 org.springframework-3.1.0.M2 를 사용하고 있었고 위의 에러가 주르륵 나왔었고, 위의 글을 보고 나서 최신 버전인 org.springframework-3.1.1.RELEASE 로 변경하였더니 정상적인 코드라고 잘 돌아갔음.


라이브러리 충돌이 왜 났을까? 저장소에 저장된 라이브러리가 최종 소스니, 예전에 문제 없었던것 같은데 왜?

원인을 모르고 문제를 해결한 셈이 되니 정말 찜찜했다.

하루종일 위의 에러때문에 머리 깨지는줄 알았는데 ㅠㅠ


Buy me a coffeeBuy me a coffee

+ Recent posts