2016-09-26 2 views
0

스프링 부트를 사용하여 시스템을 구축하고 있습니다. 저는 Spring Tools Suite를 IDE로 사용하고 있으며 Spring Tool Suite를 사용하여 Spring Boot Suite로 프로그램을 빌드하고 실행할 수 있습니다. 그러나 "mvn package"명령을 통해 maven을 통해 빌드하고 target/my-app.jar 아래에 생성 된 jar 파일을 실행하면 embeded tomcat이 시작되지 못했습니다. 오류는 아래와 같습니다.스프링 부트 임베디드 Tomcat을 시작할 수 없습니다.

org.springframework.context.ApplicationContextException : 포함 된 컨테이너를 시작할 수 없습니다. 중첩 예외는 org.springframework.boot.context.embedded.EmbeddedServletContainerException : 임베디드 Tomcat을 시작할 수 없습니다. org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh (EmbeddedWebApplicationContext.java:137) ~ [spring-boot-1.4. 0.RELEASE.jar!/: 1.4.0.RELEASE] org.springframework.context.support.AbstractApplicationContext.refresh (AbstractApplicationContext.java:535) ~ [spring-context-4.3.2.RELEASE.jar!/: 4.3.2.RELEASE] org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh (EmbeddedWebApplicationContext.java:122) ~ [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.SpringApplication.refresh (SpringApplication.java:759) [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.SpringApplication.refreshContext (에스 pringApplication.java:369) [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.SpringApplication.run (SpringApplication.java:313) [spring-boot- 1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.SpringApplication.run (SpringApplication.java:1185) [spring-boot-1.4.0.RELEASE.jar!/: 1.4 .0.RELEASE] at org.springframework.boot.SpringApplication.run (SpringApplication.java:1174) [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at com.jdescript. sun.reflect.NativeMethodAccessorImpl.invoke0 (native method) ~ [na : 1.8.0_91] at sun.reflect.NativeMethodAccessorImpl.invoke (JdeScriptApplication.java:23) [클래스!/: 0.0.1] NativeMethodAccessorImpl.java:62) ~ [na : 1.8.0_91] at sun.reflect.DelegatingMethodAccessorImp org.springframework에서 l.invoke (DelegatingMethodAccessorImpl.java:43) ~ [na : 1.8.0_91] at java.lang.reflect.Method.invoke (Method.java:498) ~ [na : 1.8.0_91] 에 있습니다. boot.loader.MainMethodRunner.run (MainMethodRunner.java:48) [jde-script-0.0.1.jar : 0.0.1] at org.springframework.boot.loader.Launcher.launch (Launcher.java:87) [ [jde-script-0.0.1.jar : 0.0.1] org.springframework.boot.loader.PropertiesLauncher.main (PropertiesLauncher.java:525) [jde-script-0.0.1.jar : 0.0.1] 에 의해 발생 : org.springframework.boot.context.embedded.EmbeddedServletContainerException : 임베디드 Tomcat을 시작할 수 없습니다. at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initiali (TomcatEmbeddedServletContainer.java:116) ~ [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer. (TomcatEmbeddedServletContainer.java : 83) ~ [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getTomcatEmbeddedServletContainer (TomcatEmbeddedServletContainerFactory.java:530) ~ [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer (TomcatEmbeddedServletContainerFactory.java:176) ~ [spring-boot -1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer (EmbeddedWebApplicationContext.java:164) ~ [spring-boot-1. 4.0.RELEASE.jar!/: 1.4.0.RELEASE] at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh (EmbeddedWebApplicationContext.java:134) ~ [spring-boot-1.4.0.RELEASE.jar!/: 1.4.0.RELEASE] ... 16 개의 공통 프레임이 생략되었습니다. 에 의해 발생 : org.apache.catalina.LifecycleException : 구성 요소 시작 실패 [StandardServer [-1]] at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java : 158) ~ [tomcat-embed-core-8.5.4.jar!/: 8.5.4] at org.apache.catalina.startup.Tomcat.start (Tomcat.java:356) ~ [Tomcat-embed-core -8.5.4.jar!/: 8.5.4] at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer.initialize (TomcatEmbeddedServletContainer.java:97) ~ [spring-boot-1.4.0.RELEASE.jar !/: 1.4.0.RELEASE] ... 21 개의 공통 프레임이 생략되었습니다. 발생 원인 : org.apache.catalina.LifecycleException : 구성 요소 시작 실패 [StandardService [Tomcat]] at org.apache.catalina.util.LifecycleBase .start (LifecycleBase.java:158)) ~ [tomcat-embed-core-8.5.4.jar!/: 8.5.4] at org.apache.catalina.core.StandardServer.startInternal (StandardServer.java:791) ~ [Tomcat-embed-core-8.5 .4jar!/: 8.5.4] org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:152) ~ [Tomcat-embed-core-8.5.4.jar!/: 8.5.4 ] ... 23 개의 공통 프레임이 생략되었습니다. 에 의해 발생 : org.apache.catalina.LifecycleException : 구성 요소 시작 실패 [StandardEngine [Tomcat]] at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:158) ~ [tomcat-embed-core-8.5.4.jar!/: 8.5.4] at org.apache.catalina.core.StandardService.startInternal (StandardService.java:422) ~ [Tomcat-embed-core-8.5 .4jar!/: 8.5.4] org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:152) ~ [Tomcat-embed-core-8.5.4.jar!/: 8.5.4 ] ... 25 개의 공통 프레임이 생략되었습니다. 발생 원인 : org.apache.catalina.LifecycleException : 시작시 하위 컨테이너가 실패했습니다. org.apache.catalina.core.ContainerBase.startInternal (ContainerBase.java:919) ~ [tomcat- embed-core-8.5.4.jar!/: 8.5.4] at org.apache.catalina.core.StandardEngine.startInternal (StandardEngine.java:262) ~ [Tomcat-embed-core-8.5.4.jar!/: 8.5.4] at org.apache.catalina.util.LifecycleBase.start (LifecycleBase.java:152) ~ [Tomcat-embed-core-8.5.4.jar!/: 8.5.4] ...

: 27 공통 프레임

내 pom.xml 파일은 다음과 같습니다

을 생략

의견을 보내 주시면 대단히 감사하겠습니다.

+0

종속성을 제거하고 다시 시도하여 원인을 찾을 수 있습니다. – mm759

+1

''spring-boot-starter-tomcat'' 런타임 형식을 제거하십시오. –

+0

이전 로그 출력에서 ​​시작 실패 이유를 알려 주어야합니다. –

답변

0

설명에서 Deinum이 제안했습니다.

tomcat 종속성 범위를 "런타임"으로 제공 했으므로 jar에 포함 된 Tomcat 종속성이 포함되어 있지 않습니다. 기본적으로 "컴파일"범위를 활성화해야하는 범위 선언을 제거하십시오. jar에는 포함 된 tomcat 컨테이너를 시작하는 데 필요한 종속성이 포함되어야합니다.

+0

시도했지만 아무런 차이가 없었습니다. – user1670498

+0

@ Ameen.M spring-boot-starter-web 아티팩트에는 서블릿 컨텍스트에 대한 포함 된 Tomcat 종속성이 이미 포함되어 있습니다. –

+0

나는 그것이 spring-boot-starter-web에 이미 포함되어 있다는 것에 동의한다. 그러나 pom 파일에 명시 적으로 선언 된 경우 이는 봄 부팅 스타터 웹 내부의 파일보다 우선합니다. OP가 게시 한 pom 스 니펫은 명시 적으로 선언되었습니다. 나는 "바람둥이 의존성의 전체 선언을 제거하라"고 말할 수 있다고 동의한다. 그것을 지적 주셔서 감사합니다. –

1

나는 이것을 알아 냈습니다. 내 시스템은 제 3 자 기업 시스템과 상호 작용하며 제 시스템은 제 3 자 시스템의 일부 JAR 파일에 의존합니다. 그래서 "-Dloader.path"는 써드 파티 JAR 파일의 디렉토리를 가리킨다. JAR 파일 중 하나 인 j2ee.jar이 tomcat과 충돌합니다. "-Dloader.path"에서 j2ee.jar 파일을 제거하면 Tomcat이 시작됩니다.

어쨌든 귀하의 제안에 다시 한 번 감사드립니다!

+0

이 정보를 공유해 주셔서 감사합니다. –

관련 문제