MinChyang
31
2022-05-20 08:16:29
2
93

retrofit2, tomcat sever 호출에 관해 여쭙니다.


안녕하세요.


개발을 하다가 하루종일 막히는 부분이 있어서 질문 드립니다.


사용자 web 프로젝트와 rest api 프로젝트, 2개의 프로젝트를 개발 중에 있는데요.


web 프로젝트에서 retrofit2를 사용해 api 서버를 호출해서 데이터를 가져오는 형식입니다.


기존에 이런 유형의 프로젝트 개발 경험이 꽤 있습니다.


로컬에서 개발 후 서버에 배포하고 문제가 생겼습니다.


현재 상황은 로컬(웹) -> 서버(api) 호출은 문제 없이 잘 되는데,


서버(웹) -> 서버(api) 호출에 문제가 있는 것 같습니다.


api 쪽에서 콘솔이나 로그를 찍어봐도 컨트롤러부터도 찍히지 않는 걸 봐서는


아예 api 컨트롤러 메서드조차 타지 못 하는 것 같습니다.


로컬에서는 잘 실행 되는 걸 보면 url의 문제도 아니라 생각됩니다.


서버는 웹, api 둘 모두 카페24 서버호스팅 이용 중이고요.


root 권한이 있는 서버라서 제가 직접 세팅하고 관리 하고 있습니다.


웹서버 톰캣 로그 에러는 아래와 같습니다.


java.net.SocketTimeoutException: connect timed out

        at java.net.PlainSocketImpl.socketConnect(Native Method)

        at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)

        at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)

        at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)

        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)

        at java.net.Socket.connect(Socket.java:607)

        at okhttp3.internal.platform.Platform.connectSocket(Platform.java:130)

        at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.java:263)

        at okhttp3.internal.connection.RealConnection.connect(RealConnection.java:183)

        at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.java:224)

        at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.java:108)

        at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.java:88)

        at okhttp3.internal.connection.Transmitter.newExchange(Transmitter.java:169)

        at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.java:41)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)

        at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.java:94)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)

        at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.java:93)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)

        at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.java:88)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:142)

        at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.java:117)

        at okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:229)

        at okhttp3.RealCall.execute(RealCall.java:81)

        at retrofit2.OkHttpCall.execute(OkHttpCall.java:180)

        at com.briefShop.web.network.anonymous.CompanyInformationRetroImpl.ro(CompanyInformationRetroImpl.java:24)

        at com.briefShop.web.service.anonymous.CompanyInformationServiceImpl.ro(CompanyInformationServiceImpl.java:13)

        at com.briefShop.web.aop.InformationAspect.getInformation(InformationAspect.java:25)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:634)

        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:617)

        at org.springframework.aop.aspectj.AspectJAfterAdvice.invoke(AspectJAfterAdvice.java:52)

        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)

        at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)

        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)

        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:753)

        at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:698)

        at com.briefShop.web.controller.anonymous.MainController$$EnhancerBySpringCGLIB$$f1c1b0ad.main(<generated>)

        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

        at java.lang.reflect.Method.invoke(Method.java:498)

        at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:205)

        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:150)

        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:117)

        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:895)


레트로핏2 설정, 사용 방식 역시 기존에 사용하던 것과 차이가 없기에


서버쪽 문제라고 의심이 되는데요.


혹시 이같은 상황을 겪어 보신 분이나, 짐작 가는 부분이 있으시다면


말씀 좀 부탁드리겠습니다!


필요한 정보가 있으시다면 댓글 부탁드립니다.


감사합니다!

0
  • 답변 2

  • Llux lux
    516
    2022-05-20 08:28:23

    설정에 문제가 없다면 api 서버의 접속 제한 부분 확인이 필요해 보이네요.

    IP 제한이 개발 사무실만 열려 있다거나

  • MinChyang
    31
    2022-05-20 20:40:22

    문제 해결 되었습니다.


    api 프로젝트, 서버 역시 제가 만든 거였기에 문제는 없었습니다.


    문제는 web 프로젝트가 배포된 서버의 방화벽이었습니다.


    분명히 터널에서 방화벽 체크를 했을 때 문제가 없었는데,


    카페24 콘솔에서 방화벽 관리라는 메뉴를 들어가 보니


    방화벽 설정이 디폴트가 아닌 누군가가 건드린 흔적이 보였습니다.


    해당 카페24 콘솔에서 방화벽 관리를 디폴트로 초기화 하고 문제가 해결 되었습니다.


    답변 감사합니다!

  • 로그인을 하시면 답변을 등록할 수 있습니다.