작성
·
6K
0
@SpringBootApplicationpublic class SpringinitApplication {
public static void main(String[] args) {
new SpringApplicationBuilder()
.sources(SpringApplication.class)
.run(args);
}
}
소스코드를 위와 같이 설정했는데 run 하면 banner뜨고 로그 뜨다가
2018-08-04 00:08:12.228 ERROR 20688 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.context.ApplicationContextException: Unable to start web server; nested exception is org.springframework.context.ApplicationContextException: Unable to start ServletWebServerApplicationContext due to missing ServletWebServerFactory bean.
이런 에러 메시지가 뜨는데 이유를 잘 모르겠어서 질문을 남겨봅니다
답변 4
2
안녕하세요 답변감사합니다
확인해보니 pom.xml에 이미 답변해주신 spring-boot-starter-web은 이미 의존성이 추가돼있습니다
SpringApplication.run(SpringinitApplication.class, args);
그냥 이런식으로 하는건 되지만.. 빌더를 이용한건 여전히 되지않습니다.
mvn clean package해도 동일한 에러가 나고있네요
현재 pom.xml은 아래와 같이 설정돼있습니다
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.4.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
1
아 코드에 문제가 있었네요. ㅎㅎ
.build() 하신다음에 .run()을 호출하셔야 합니다.
new SpringApplicationBuilder(Demo1Application.class)
.build()
.run(args);
이렇게 해보세요. 그리고 메인 클래스는 source()를 써서 줘도 되지만 그냥 빌더 생성자에 넣어주셔도 되요.
감사합니다.
1
제 생각엔, 웹 스타터 의존성을 추가하지 않아서, 서블릿 관련 자동 설정이 추가가 되지 않았고, 그래서 ServletWebServerFacotry 빈을 못찾아서 에러가 난것 같습니다.
pom.xml에 다음과 같이 의존성을 추가하고 다시 해보시겠어요?
<dependencies> <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
감사합니다.
0