[SPRING] ApplicationContextException : ServletWebServerFactory 빈이 없어서 ServletWebServerApplicationContext를 시작할 수 없습니다.
SPRINGApplicationContextException : ServletWebServerFactory 빈이 없어서 ServletWebServerApplicationContext를 시작할 수 없습니다.
스프링 부트를 사용하여 스프링 배치 애플리케이션을 작성했습니다. 로컬 시스템에서 명령 행과 클래스 경로를 사용하여 해당 애플리케이션을 실행하려고하면 정상적으로 실행됩니다. 그러나 리눅스 서버에서 실행하려고했을 때 예외적으로 다음과 같이 표시됩니다.
Unable to start web server; nested exception is
org.springframework.context.ApplicationContextException:
Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
아래는 내가 그것을 실행하는 방법입니다 :
java -cp jarFileName.jar; lib\* -Dlogging.level.org.springframework=DEBUG -Dspring.profiles.active=dev -Dspring.batch.job.names=abcBatchJob com.aa.bb.StartSpringBatch > somelogs.log
해결법
-
==============================
1.application.properties에서 다음을 수행합니다.
application.properties에서 다음을 수행합니다.
spring.main.web-application-type=none
application.yml을 사용하는 경우 다음을 추가하십시오.
spring: main: web-application-type: none
@SpringBootApplication public class YourAppliationName extends SpringBootServletInitializer{ public static void main(String[] args) { SpringApplication.run(YourAppliationName.class, args); } }
-
==============================
2.해결책은 다음과 같습니다.
해결책은 다음과 같습니다.
application.yml 파일에서 below 속성을 none으로 명시 적으로 설정했습니다.
spring: main: web-application-type: none
-
==============================
3.pom.xml의 spring-boot-startter-parent를 최신 버전으로 업그레이드하면 해결됩니다.
pom.xml의 spring-boot-startter-parent를 최신 버전으로 업그레이드하면 해결됩니다.
-
==============================
4.스프링 부트로 마이그레이션하는 동안이 문제가 발생했습니다. 의존성을 제거하는 조언을 찾았습니다. 그래서 jsp-api 프로젝트의 의존성을 제거했습니다. 또한 servlet-api 종속성도 제거해야합니다.
스프링 부트로 마이그레이션하는 동안이 문제가 발생했습니다. 의존성을 제거하는 조언을 찾았습니다. 그래서 jsp-api 프로젝트의 의존성을 제거했습니다. 또한 servlet-api 종속성도 제거해야합니다.
compileOnly group: 'javax.servlet.jsp', name: 'jsp-api', version: '2.2'
-
==============================
5.내 IDE (IntelliJ) 내에서보다는 뚱뚱한 항아리로 내 웹 응용 프로그램을 실행하려면 attempint 때이 문제가 발생했습니다.
내 IDE (IntelliJ) 내에서보다는 뚱뚱한 항아리로 내 웹 응용 프로그램을 실행하려면 attempint 때이 문제가 발생했습니다.
이것이 나를 위해 일한 것입니다. application.properties 파일에 기본 프로파일을 추가하기 만하면됩니다.
spring.profiles.active=default
다른 특정 프로파일 (dev / test / prod)을 이미 설정 한 경우 기본값을 사용할 필요가 없습니다. 하지만 그렇지 않다면 뚱뚱한 항아리로 응용 프로그램을 실행하는 데 필요합니다.
-
==============================
6.아마도 스프링 부트 스타터 클래스에 @SpringBootApplication이 없습니다.
아마도 스프링 부트 스타터 클래스에 @SpringBootApplication이 없습니다.
@SpringBootApplication public class LoginSecurityAppApplication { public static void main(String[] args) { SpringApplication.run(LoginSecurityAppApplication.class, args); } }
from https://stackoverflow.com/questions/50231736/applicationcontextexception-unable-to-start-servletwebserverapplicationcontext by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 커스텀 스프링 부트 스타일 스타터 라이브러리의 통합 테스트 자동 설정 방법 (0) | 2019.04.29 |
---|---|
[SPRING] spring 배치가있는 Json Array 판독기 파일 (0) | 2019.04.29 |
[SPRING] ConcurentHashMap과 AtomicInteger를 스프링 서비스 클래스 내의 인스턴스 변수로 사용하기 (0) | 2019.04.29 |
[SPRING] Jar의 여러 XML 파일을 사용하는 Spring ApplicationContext (0) | 2019.04.29 |
[SPRING] @Transactional 메서드에서 Spring 내에서 트랜잭션이 시작되지 않습니다. (0) | 2019.04.29 |