[SPRING] 전용 바람둥이에 war 파일로 spring-boot 어플리케이션을 배치하는 것이 효과가 없습니다.
SPRING전용 바람둥이에 war 파일로 spring-boot 어플리케이션을 배치하는 것이 효과가 없습니다.
스프링 부트 응용 프로그램을 가지고 있으며 이제 전용 Tomcat 서버에 응용 프로그램을 배포하고 포함 된 Tomcat을 사용하지 않으려합니다. 배포시 두 가지 방법 모두 오류가 발생하지 않습니다.
나는 spring-boot-starter-tomcat 의존성을 위해 제공된 scope =를 주었다.
임베디드 바람둥이 (적절하게 변경된 내용 포함)로 응용 프로그램을 실행할 때 http : // localhost : 8080 / testGET 링크를 누르면 완벽하게 작동합니다. 하지만 범위가 제공된 전용 톰캣에서 http : // localhost : 8080 / test-results-upload-1.0 / testGET 또는 http : // localhost : 8080 / testGET 링크를 누르면 응답이 나타납니다. / error에 매핑됩니다.
이걸 도와주세요. 내가하고있는 실수를 이해할 수 없다. ..
미리 감사드립니다.
@EnableAutoConfiguration
@Configuration
@EnableWebMvc
@ComponentScan("com............controller")
@Import(SpringMongoConfig.class)
public class BootStrap extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(BootStrap.class, args);
}
@Override
protected SpringApplicationBuilder configure(
SpringApplicationBuilder application) {
return application.sources(BootStrap.class);
}
}
.
@Controller
public class Controller {
@Autowired(required = true)
private IRepository config;
@RequestMapping(value = "/testGET", method = RequestMethod.GET)
public String testGet(HttpServletResponse response) {
try {
response.sendError(HttpStatus.OK.value());
return "Application working perfectly !";
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
}
.
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>test-results-upload</groupId>
<artifactId>test-results-upload</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<properties>
<spring.boot>1.1.5.RELEASE</spring.boot>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<version>${spring.boot}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-rest-webmvc</artifactId>
<version>2.1.4.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>${spring.boot}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${spring.boot}</version>
<type>maven-plugin</type>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
<version>2.4.2</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.4.2</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.4</version>
<configuration>
<warSourceDirectory>WebContent</warSourceDirectory>
<failOnMissingWebXml>false</failOnMissingWebXml>
</configuration>
</plugin>
</plugins>
</build>
해결법
-
==============================
1.BTW에서는 application.properties 파일에 다음 속성을 설정하여 독립 실행 형 스프링 부팅 응용 프로그램에 컨텍스트 경로를 추가 할 수 있습니다.
BTW에서는 application.properties 파일에 다음 속성을 설정하여 독립 실행 형 스프링 부팅 응용 프로그램에 컨텍스트 경로를 추가 할 수 있습니다.
server.contextPath = / test-results-upload-1.0
이렇게하면 독립 실행 형을 배포했는지 아니면 외부 컨테이너를 통해 배포했는지에 관계없이 동일한 contextPath를 갖게됩니다.
-
==============================
2.이 질문이 처음으로 나왔다. Maven을 사용하여 Tomcat 서버 (외부)에 배포 된 WAR 패키지로 제공되는 Spring 부팅 애플리케이션을 공유 한 적이있다.
이 질문이 처음으로 나왔다. Maven을 사용하여 Tomcat 서버 (외부)에 배포 된 WAR 패키지로 제공되는 Spring 부팅 애플리케이션을 공유 한 적이있다.
-
==============================
3.response.sendError (HttpStatus.OK.value ())에 대한 호출을 제거합니다.
response.sendError (HttpStatus.OK.value ())에 대한 호출을 제거합니다.
첫째, HTTP OK (200) 응답은 오류가 아니며 두 번째로 HTTP OK가 기본 응답 상태이므로 설정하지 않아도됩니다. OK 이외의 값으로 설정하려면 HttpServletResponse.setStatus를 호출해야합니다.
-
==============================
4.메소드 서명에서 (HttpServletResponse 응답)을 제거하여 문제를 해결했습니다. 다른 모든 것은 동일하게 유지됩니다.
메소드 서명에서 (HttpServletResponse 응답)을 제거하여 문제를 해결했습니다. 다른 모든 것은 동일하게 유지됩니다.
<의존성>
org.springframework.boot groupId> spring-boot-starter-tomcat artifactId> 제공됨 scope> dependency> 그 후 전쟁 파일을 가져 와서 $ {TOMCAT_DIR} / webapps에 넣고 URL http : // localhost : 8080 / test-results-upload-1.0 / testGET을 치면 작동했습니다 !!!
from https://stackoverflow.com/questions/25870764/deploying-a-spring-boot-application-as-a-war-file-on-a-dedicated-tomcat-is-not-w by cc-by-sa and MIT license
'SPRING' 카테고리의 다른 글
[SPRING] 왜 봄 ReactiveMongoRepository는 모노에 대한 저장 방법을 가지고 있지 않습니까? (0) | 2019.04.28 |
---|---|
[SPRING] 값에 대해 Redis에서 데이터를 모델링하는 방법 복잡한 데이터 구조? (0) | 2019.04.28 |
[SPRING] 스프링 테스트 및 메이븐 (0) | 2019.04.28 |
[SPRING] 스프링 보안 - BcryptPasswordEncoder (0) | 2019.04.28 |
[SPRING] @Transactional 내부의 try-catch에서 변경 사항을 커밋하십시오. (0) | 2019.04.28 |