해결된 질문
23.12.02 10:41 작성
·
1.3K
·
수정됨
0
IntelliJ Community 2021.2.3 버전으로 진행하고 있습니다.
컴파일 오류는 나지는 않지만 빌드 시 오류가 납니다.
어떤 부분이 잘못 되었는지 모르겠습니다.
어떻게 해야 될까요?
application.yml
server:
port: 8761
spring:
application:
name: discoveryservice
eureka:
client:
register-with-eureka: false
fetch-registry: false
pom.xml
<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.1.6</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.example</groupId>
<artifactId>discoveryservice</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>discoveryservice</name>
<description>Demo project for Spring Boot</description>
<properties>
<java.version>17</java.version>
<spring-cloud.version>2022.0.4</spring-cloud.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-netflix-eureka-server</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<image>
<builder>paketobuildpacks/builder-jammy-base:latest</builder>
</image>
</configuration>
</plugin>
</plugins>
</build>
</project>
DiscoveryserviceApplication.java
package com.example.discoveryservice;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.netflix.eureka.server.EnableEurekaServer;
@EnableEurekaServer
@SpringBootApplication
public class DiscoveryserviceApplication {
public static void main(String[] args) {
SpringApplication.run(DiscoveryserviceApplication.class, args);
}
}
답변 3
0
2023. 12. 05. 11:14
안녕하세요, 이도원입니다.
메일로도 답변을 드렸는데, 여기에도 올려드리는게 좋을 것 같아 다시 남겨드립니다.
올려주신 applicationm.yml 파일의 내용을 아래와 같이 수정해 보시기 바랍니다. eurkea와 spring은 같은 Depth에 작성하셔야 합니다. (보내 주신 파일에서는 spring에 eureka가 포함되어 있는 형식이었습니다)
spring:
application:
name: discoveryService
eureka:
client:
register-with-eureka: false
fetch-registry: false
감사합니다.
0
2023. 12. 04. 11:05
안녕하세요, 이도원입니다.
오류가 발생한 부분에 대한 로그를 같이 공유해 주실 수 있을까요?
올려주신 코드로 저희 환경에서 실행했을 때 (코드도 모두 복사해서 사용), 이상없이 잘 기동되네요. 오류 코드 공유해 주시면, 원인을 파악하는데에 도움이 될 것 같습니다.
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다.
문제가 발생한 부분을 정확히 파악하기 위해서는 오류 메시지의 상세 내용이 중요합니다. IntelliJ의 빌드나 실행 로그창에서 나타나는 에러 메시지를 확인해주시겠어요? 빌드 과정 중 방해가 될 수 있는 다른 프로세스가 실행되고 있지는 않은지, 포트 충돌이나 의존성 문제가 있는지도 확인해볼 필요가 있습니다.
또한, 제공해주신 application.xml
파일은 yml
형식으로 되어있으나 파일 확장자는 .xml
로 되어있습니다. 이 부분도 오류의 원인이 될 수 있으므로 파일 확장자를 .yml
로 변경해 보시길 권장드립니다. application.yml
혹은 application.properties
로 변경하셔야 설정이 정상적으로 인식될 것입니다.
pom.xml 파일에서는 Spring Boot의 부모 의존성이 잘 설정되어있으며 Eureka Server와 관련된 의존성도 적절히 추가되어 있습니다. 다만, Spring Boot의 버전과 Spring Cloud의 버전이 호환되는지 확인해보셔야 할 것 같습니다. 경우에 따라 버전 호환성 문제로 빌드 오류가 발생할 수 있어, 이 부분도 체크하시고 문제가 있다면 호환되는 버전으로 변경해 보시기 바랍니다.
에러 메시지를 보고 추가적인 조언이 필요하시면, 오류 내용을 자세히 알려주시면 더 구체적인 해결 방법을 제시드릴 수 있을 것입니다.
2023. 12. 04. 21:32
application.xml은 제가 임의로 파일명을 쓰면서 오타 난것이고, 실제 프로젝트 내에서는 강의상에 언급되어 있는 application.yml으로 생성되어 있는 상태입니다.
개발환경
- IntelliJ IDEA Community Edition 2021.2.3
- Java 17
- start.spring.io에서 초기 프로젝트 생성
: Maven
Spring Boot 3.2.0
Java 17
아래는 수행했을 때 로그입니다. 확인 부탁드립니다.
혹시 첨부파일을 보낼 수 있는 메일주소나 등록할 수 있는 게시판이 있나요? 아래 로그는 일부만 발췌를 한 상태라 문제해결에 도움이 될지는 모르겠네요.
연락 가능한 메일 주소 있으면 안내 부탁드립니다. ㅠㅠ
2023-12-04T21:20:17.483+09:00 INFO 15496 --- [discoveryService] [ restartedMain] com.netflix.discovery.DiscoveryClient : Getting all instance registry info from the eureka server
2023-12-04T21:20:17.606+09:00 INFO 15496 --- [discoveryService] [ restartedMain] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/}, exception=java.net.ConnectException: Connection refused: no further information stacktrace=jakarta.ws.rs.ProcessingException: java.net.ConnectException: Connection refused: no further information
at org.glassfish.jersey.client.internal.HttpUrlConnector.apply(HttpUrlConnector.java:275)
at org.glassfish.jersey.client.ClientRuntime.invoke(ClientRuntime.java:300)
at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$0(JerseyInvocation.java:662)
at org.glassfish.jersey.client.JerseyInvocation.call(JerseyInvocation.java:697)
at org.glassfish.jersey.client.JerseyInvocation.lambda$runInScope$3(JerseyInvocation.java:691)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at org.glassfish.jersey.client.JerseyInvocation.runInScope(JerseyInvocation.java:691)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:661)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:413)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:313)
at com.netflix.discovery.shared.transport.jersey3.AbstractJersey3EurekaHttpClient.getApplicationsInternal(AbstractJersey3EurekaHttpClient.java:266)
at com.netflix.discovery.shared.transport.jersey3.AbstractJersey3EurekaHttpClient.getApplications(AbstractJersey3EurekaHttpClient.java:213)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
at com.netflix.discovery.shared.transport.decorator.MetricsCollectingEurekaHttpClient.execute(MetricsCollectingEurekaHttpClient.java:73)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
....
....
....
2023-12-04T21:20:17.608+09:00 INFO 15496 --- [discoveryService] [ restartedMain] com.netflix.discovery.DiscoveryClient : DiscoveryClient_DISCOVERYSERVICE/DESKTOP-VC1226Q:discoveryService:8761 - was unable to refresh its cache! This periodic background refresh will be retried in 30 seconds. status = Cannot execute request on any known server stacktrace = com.netflix.discovery.shared.transport.TransportException: Cannot execute request on any known server
at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:112)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$6.execute(EurekaHttpClientDecorator.java:137)
at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77)
at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.getApplications(EurekaHttpClientDecorator.java:134)
at com.netflix.discovery.DiscoveryClient.getAndStoreFullRegistry(DiscoveryClient.java:1045)
at com.netflix.discovery.DiscoveryClient.fetchRegistry(DiscoveryClient.java:958)
at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:396)
at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:247)
at com.netflix.discovery.DiscoveryClient.<init>(DiscoveryClient.java:242)
2023. 12. 05. 20:52
네 이렇게 수정하니 동작하네요. 감사합니다.