-
카테고리
-
세부 분야
백엔드
-
해결 여부
미해결
curl and undertow
18.12.05 22:32 작성 조회수 158
0
안녕하세요.
질문드리고 싶은 점이 몇 가지가 있습니다.
1) curl -I -k --http2 https://localhost:8443/hello 를 입력하면 curl: (1) Unsupported protocol 이라는 결과가 나와서 https://simonecarletti.com/blog/2016/01/http2-curl-macosx/ 에 나온 안내대로 진행을 했는데 결과가 바뀌지 않는데, 무엇이 문제일까요?
2) 의존성을 다음과 같이 입력했는데, 계속해서 Tomcat이 실행되는데 무엇이 문제일까요?
<?xml version="1.0" encoding="UTF-8"?>
<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>me.yun</groupId>
<artifactId>dec04</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>dec04</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.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>
<exclusions>
<!-- Exclude the Tomcat dependency -->
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-undertow</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>
</project>
3) 2)에서 입력한 의존성에 다음의 코드가 존재하는 상황입니다. 그런데 Error:(3, 37) java: package org.apache.catalina.connector does not exist 같은 에러가 나오는데 xml 설정이 잘못된 것일까요?
package me.yun.dec04;
import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class Dec04Application {
@GetMapping("/hello")
public String hello(){
return "Hello Spring";
}
public static void main(String[] args) {
SpringApplication.run(Dec04Application.class, args);
}
@Bean
public ServletWebServerFactory serverFactory(){
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createStandardConnector());
return tomcat;
}
private Connector createStandardConnector(){
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setPort(8080);
return connector;
}
}
답변을 작성해보세요.
0
백기선
지식공유자2018.12.06
1) curl에 대해서는 저도 잘 모르겠습니다.
2) 아마도 메이븐 의존성이 refresh 되지 않아서 그런거 같습니다. pom.xml에 의존성 설정은 맞게 하신거 같아요. 인텔리J에 오른쪽에 보면 maven 탭이 있는데 거기서 리프레시 버튼이 그 탭 왼쪽 상단에 있습니다. 그걸 몇번 클릭해서 의존성을 갱신하고 다시 시도해 보시면 될 수 있습니다.
3) 2번에 설정한 pom.xml에서 톰캣을 빼고 언더토를 넣어는데, 해당 코드에서는 톰캣(카탈리나)을 쓰려고해서 컴파일 에러가 나고 있는것으로 보이네요. 2)번처럼 pom.xml을 설정하셨다면 더이상 내장 톰캣을 띄우는 자바 코드는 사용할 수 없으니 해당 코드를 제거하거나 언더토용으로 바꾸셔야 할 거 같습니다.
답변 1