소개
게시글
질문&답변
2023.12.23
직접 어플리케이션 서버에 요청을 보내면 동작하는데, gateway 서버로 보내면 404가 뜹니다
해결했습니다ㅜBoot 3으로 해서인지 gateway server 프로젝트를 만들면서 gateway 라이브러리를 추가하니까'org.springframework.cloud:spring-cloud-starter-gateway'가 아니라'org.springframework.cloud:spring-cloud-starter-gateway-mvc'가 추가되었더라구요.그래서 'org.springframework.cloud:spring-cloud-starter-gateway' 로 변경하고 eureka client 서버들 XXXApplication 클래스에 '@EnableDiscoveryClient' 어노테이션을 달고게이트웨이 서버 실행 후에 약간의 시간이 지나면 정상적으로 요청을 받을 수 있었습니다.감사합니다 ㅎㅎ 이어서 강의 들으러 가보겠습니다 메리크리스마스여
- 0
- 5
- 1.2K
질문&답변
2023.12.21
직접 어플리케이션 서버에 요청을 보내면 동작하는데, gateway 서버로 보내면 404가 뜹니다
instance-id 에 넣은 변수명?에 값이 매칭되지 않아서어플리케이션서버(rms)로 온 요청 url에서 오류가 나는 것 같습니다. 제가 이해한 게 맞을까요? 2023-12-21T22:54:20.338+09:00 INFO 28432 --- [rms] [tbeatExecutor-0] c.n.d.s.t.d.RedirectingEurekaHttpClient : Request execution error. endpoint=DefaultEndpoint{ serviceUrl='http://localhost:8761/eureka/} exception=Not enough variable values available to expand 'spring.cloud.client.ipAddress' stacktrace=java.lang.IllegalArgumentException: Not enough variable values available to expand 'spring.cloud.client.ipAddress' at org.springframework.web.util.UriComponents$VarArgsTemplateVariables.getValue(UriComponents.java:370) at org.springframework.web.util.UriComponents.expandUriComponent(UriComponents.java:263) at org.springframework.web.util.HierarchicalUriComponents$PathSegmentComponent.expand(HierarchicalUriComponents.java:983) at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:440) at org.springframework.web.util.HierarchicalUriComponents.expandInternal(HierarchicalUriComponents.java:53) at org.springframework.web.util.UriComponents.expand(UriComponents.java:172) at org.springframework.web.util.DefaultUriBuilderFactory$DefaultUriBuilder.build(DefaultUriBuilderFactory.java:403) at org.springframework.web.util.DefaultUriBuilderFactory.expand(DefaultUriBuilderFactory.java:154) at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:780) at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:663) at org.springframework.cloud.netflix.eureka.http.RestTemplateEurekaHttpClient.sendHeartBeat(RestTemplateEurekaHttpClient.java:99) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) at com.netflix.discovery.shared.transport.decorator.RedirectingEurekaHttpClient.execute(RedirectingEurekaHttpClient.java:91) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) at com.netflix.discovery.shared.transport.decorator.RetryableEurekaHttpClient.execute(RetryableEurekaHttpClient.java:120) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator$3.execute(EurekaHttpClientDecorator.java:92) at com.netflix.discovery.shared.transport.decorator.SessionedEurekaHttpClient.execute(SessionedEurekaHttpClient.java:77) at com.netflix.discovery.shared.transport.decorator.EurekaHttpClientDecorator.sendHeartBeat(EurekaHttpClientDecorator.java:89) at com.netflix.discovery.DiscoveryClient.renew(DiscoveryClient.java:837) at com.netflix.discovery.DiscoveryClient$HeartbeatThread.run(DiscoveryClient.java:1401) at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833)
- 0
- 5
- 1.2K
질문&답변
2023.12.20
직접 어플리케이션 서버에 요청을 보내면 동작하는데, gateway 서버로 보내면 404가 뜹니다
답변 감사드립니다.. 이렇게나 빨리 주시다니 ㅜ제가 이렇게 저렇게 바꿔가며 테스트하다가 질문드리다보니, 혼란이 좀 있었습니다..알려주신 것처럼 매핑도 해보고, 아예 삭제도 해보다가 삭제한 뒤에 보내서 predicates 설정이 빠진채로 질문드렸네요..ㅜ predicates: - Path=/rms/**로 설정해두고POST 요청을http://localhost:8070/rms/member/add로 날렸을때 404가 떳습니다..랜덤으로 지정된 포트 xxxxhttp://localhost:xxxx/rms/member/add로 요청하면 정상동작은 했습니다.. erureka 서버 ID가 좀 의심스럽기는 했습니다.강의에서는 item-service라고 떡하니 떠있는데, 저는 암호화된 랜덤값처럼 떳습니다.(사진)포트와 name을 설정한 gateway-server는떡하니 gateway-server:8070으로 뜨는데RMS 서버는 e7aff560143dac.... 로 뜨는걸 보면 이쪽도 좀 수상하긴 해서config-server의 rms-local.yml 파일에서eureka.instance.instance-id값에 들어가는 spring.cloud.client.hostname 에 값을 rms로 넣어주기도 해봤는데 그때도 역시 404였습니다..지금은 알려주신대로 서버를 완전히 똑같이 처음부터 만들어보려고 하고 있습니다.. 어느부분을 확인해야될지 잘 모르겠습니다.ㅜ
- 0
- 5
- 1.2K