차근차근/Spring
Server Tomcat v7.0 Server at localhost failed to start. 1
Server Tomcat v7.0 Server at localhost failed to start.
스프링 , 메이븐 사용해서 게시판만들어보려고 했는데..
이 에러가 안 사라진다..
심각: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
... 6 more
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:90)
at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1577)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1281)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
6월 01, 2015 8:44:48 오전 org.apache.catalina.loader.WebappClassLoader validateJarFile
정보: validateJarFile(C:\11111\study_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\onjboard111\WEB-INF\lib\javax.servlet.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
6월 01, 2015 8:44:48 오전 org.apache.catalina.loader.WebappClassLoader validateJarFile
정보: validateJarFile(C:\11111\study_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\onjboard111\WEB-INF\lib\jsp-api-2.1.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/el/Expression.class
6월 01, 2015 8:44:48 오전 org.apache.catalina.loader.WebappClassLoader validateJarFile
정보: validateJarFile(C:\11111\study_workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\onjboard111\WEB-INF\lib\servlet-api.jar) - jar not loaded. See Servlet Spec 3.0, section 10.7.2. Offending class: javax/servlet/Servlet.class
6월 01, 2015 8:44:48 오전 org.apache.catalina.core.ContainerBase startInternal
심각: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/onjboard111]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/onjboard111]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
... 6 more
Caused by: java.lang.NoSuchMethodError: javax.servlet.ServletContext.getClassLoader()Ljava/lang/ClassLoader;
at org.apache.catalina.startup.WebappServiceLoader.load(WebappServiceLoader.java:90)
at org.apache.catalina.startup.ContextConfig.processServletContainerInitializers(ContextConfig.java:1577)
at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1281)
at org.apache.catalina.startup.ContextConfig.configureStart(ContextConfig.java:889)
at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:386)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
at org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5412)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
6월 01, 2015 8:44:48 오전 org.apache.catalina.core.ContainerBase startInternal
심각: A child container failed during start
java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at java.util.concurrent.FutureTask.report(Unknown Source)
at java.util.concurrent.FutureTask.get(Unknown Source)
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1123)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1575)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1565)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:816)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 6 more
6월 01, 2015 8:44:48 오전 org.apache.catalina.startup.Catalina start
심각: The required Server component failed to start so Tomcat is unable to start.
org.apache.catalina.LifecycleException: Failed to start component [StandardServer[8005]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.startup.Catalina.start(Catalina.java:689)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:321)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:455)
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardService[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardServer.startInternal(StandardServer.java:739)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 7 more
Caused by: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina]]
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
at org.apache.catalina.core.StandardService.startInternal(StandardService.java:443)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 9 more
Caused by: org.apache.catalina.LifecycleException: A child container failed during start
at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1131)
at org.apache.catalina.core.StandardEngine.startInternal(StandardEngine.java:300)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
... 11 more
방법 1 ]
http://codedragon.tistory.com/1352
톰캣 서버 재설정
window - preferences - server - Runtime Environments
- 기존 톰캣 삭제 (선택하고 remove , the runtime environment is currently .. 이런 창뜨면 OK)
- add 눌러서 톰캣 새로 추가
-> 안됨.
방법 2 ]
http://egloos.zum.com/eoGood/v/9596457
이 분의 경우
web.xml에 문제있는 것이다.
DispatcherServlet을 web.xml에 추가했는데 설정파일이 존재하지 않았고 설정파일에는 패턴이 잘못 지정되어 있었다.
라고 한다. ..xml어떻게 수정하지.
=============> http://antop.tistory.com/149 메이븐 웹 프로젝트 생성 후 해야 할 일들
Introduce
웹프로젝트 생성 후 추가적으로 해야할 작업을 정리합니다.
프로젝트를 생성하면 아래와 같은 구조로 생성이 됩니다.
Create Resource Folder
기본적인 메이븐 구조에 맞게 있어야 하는 폴더가 안 만들어져 있습니다.
main/java
main/resources <- 이미 생성되어 있음
test/java
test/resources
폴더를 생성하고
main/webapp
폴더는 삭제합니다.
Project Preperties 로 들어갑니다. (프로젝트에서 마우스 오른쪽 버튼 - Properties)
Java Build Path에 3개는 이미 추가되어 있으니(폴더도 없었으면서 -_-) 한개 빠진 폴더를 추가합니다.
Add Folder 버튼 클릭
남은 하나의 폴더(test/resources)를 추가합니다.
OK 후 Java Resources 쪽에 보면 4개의 폴더가 적용되어 있습니다.
Change JRE System Library
저는 JDK 1.5 가 없습니다. 1.6 을 사용합니다. 하지만 메이븐 프로젝트를 만들면 기본적으로 빌드를 1.5로 하게 되어 있습니다. 이클립스에서 알아서 1.6으로 해주지만 경고가 표시됩니다.
Project Facets 설정 에서 1.6 으로 바꿔줄 수 있지면 나중에 pom.xml 설정을 바꾸다 보면 다시 원상 복귀 됩니다.
해결방법은 pom.xml 에서 플러그인 부분을 아래와 같이 추가 후 저장합니다.
<build>
<finalName>maven.project</finalName>
<!-- 이거 -->
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
그러면 아래와 같이 에러가 나게 됩니다.
하라는대로 합니다. ㅎㅎ 프로젝트 오른쪽 버튼 클릭후 Maven - Update Project.
그럼 메이븐 프로젝트 선택하고 나옵니다. 현재 작업중인 프로젝트를 선택합니다.
그러면 이제 1.6 으로 돌아가게 됩니다. 물론 경고도 사라집니다.
Change Web Resource Location
처음 메이븐 웹 프로젝트를 만들면 웹 관련 폴더는 {프로젝트 루트}/src/main/webapp 에 있습니다.
이게 좀 소스 찾아 들어가려면 귀찮습니다. -_-;; 이 부분을 {프로젝트 루트}/webapp 로 변경하겠습니다.
이미 위에서 src/main/webapp 폴더는 삭제했습니다. 삭제하지 안았다면 삭제합니다.
프로젝트 바로 아래에 webapp, WEB-INF 폴더, web.xml(servlet 2.5) 파일을 생성합니다.
webapp 경로가 바뀌었으니 pom.xml 파일에 maven-war-plugin 설정을 추가합니다.
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>webapp</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
</project>
수정 후 저장을 하면 다시 Update Project 하라고 에러가 납니다.
아직 추가 설정을 더 해줘야합니다!!
Navigator 뷰에서 프로젝트를 본 후 .settings 폴더에서 두개의 파일을 수정합니다.
.jsdtscope - 블럭된 부분을 삭제합니다.
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src/main/webapp"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
org.eclipse.wst.common.project.facet.core.xml - jst.web 버전을 2.5로 변경합니다. (자신의 web.xml 따라서 변경)
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<fixed facet="wst.jsdt.web"/>
<installed facet="jst.web" version="2.5"/>
<installed facet="wst.jsdt.web" version="1.0"/>
<installed facet="java" version="1.6"/>
</faceted-project>
모두 저장 후 Project Explorer 뷰로 이동 후 Maven - Update Project
프로젝트를 보면 Deployment Descriptor 가 표시 되었습니다.
Maven Install 이나 War Export 해보면 정상적인 구조로 말리는 걸 확인할 수 있네요~
지금 내 프로젝트는 구조가 잘못되었다. 그래서 일단 구조는 바꿨고
또.. web.xml이 제대로 되어 있는 것인지 알고 싶은데.. 모르겠다.
그래서 여전히 Server Tomcat v7.0 Server at localhost failed to start....
web.xml은 수정못하고 일단 markers에 있는 에러를 보면
Description Resource Path Location Type
Cannot change version of project facet Dynamic Web Module to 2.5. onjboard111 line 1 Maven Java EE Configuration Problem
Description Resource Path Location Type
One or more constraints have not been satisfied. onjboard111 line 1 Maven Java EE Configuration Problem
이런게 있었는데
Cannot change version of project facet Dynamic Web Module to 2.5.
Dynamic Web Module을 2.5 버전으로 바꾸려고 하는데 할 수 없다는 에러 였다.
다음과 같이 JDK 1.7에 Dynamic Web Module 3.0으로 잘 설정되어 있는 상태이다. 헌데 왜 Dynamic Web Module 2.5로 바꾸려고 하는지 모르겠다.
혹시나 해서 workspace의 .settings디렉토리의 org.eclipse.wst.common.project.facet.core.xml 파일을 열어 보았다.
이 또한 정상적으로 잘 등록되어 있었다. 이 파일을 확인해 보는 이유는 jst.web 버전이 2.5로 등록되어 있는 경우가 있었기 때문이고, 이로 인하여 Problems 뷰에 오류가 발생한 것을 경험해 봤기 때문이다.
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v7.0"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.7"/>
<installed facet="jst.web" version="3.0"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
뭔가 다른 문제가 있을 것 같다는 생각이 들었고, 혹시 web.xml에 정의되어 있는 XML 스키마 설정이 잘못되어 있는 것일까 싶어 확인해 보니 다음과 같이 되어 있었다.
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
version="2.5">
XML 스키마 설정이 잘못되어 있어 오류가 발생했던 것이다.
위와 같이 정의되어 있었던 이유는 프로젝트 개발 초창기에는 Tomcat6 버전을 사용했고, Tomcat7으로 옮겨가면서 XML 스키마 부분을 수정하지 않았던 것이다.
Tomcat 버전에 맞는 서블릿 스펙으로 변경해 주니 오류가 사라졌다.
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
톰켓 버전에 따른 servlet spec 사용 버전 맵핑 테이블은 다음 URL에서 확인할 수 있다.
http://tomcat.apache.org/whichversion.html
위의 방법으로 해결이 안 되면 다음과 같은 방법으로 해보자.
프로젝트 선택 후 우클릭 > Disable Maven Nature 선택
프로젝트 선택 후 우클릭 > Configure의 Convert to Maven Project 선택
http://action713.tistory.com/1036 여기로 이어진다.
'차근차근 > Spring' 카테고리의 다른 글
server tomcat v7.0 server at localhost failed to start. 3 (0) | 2015.06.02 |
---|---|
server tomcat v7.0 server at localhost failed to start. 2 (0) | 2015.06.01 |
spring + maven + eclipse (0) | 2015.05.21 |
controller에서 alert (0) | 2014.07.26 |
executeQueryForObject returned too many results. (0) | 2014.07.25 |
'차근차근/Spring'의 다른글
- 현재글Server Tomcat v7.0 Server at localhost failed to start. 1