我一直在使用microservice和springcloud。所以就嵌入式tomcat而言,一切都很正常。
当我在外部tomcat中部署所有war时,事情变得混乱,下面是一个示例:
我有如下服务:
EurekaServer服务
zuulgateway服务
服务a
服务B
服务间通信工作正常,即从servicea->serviceb,反之亦然。
但是,当我在外部tomcat(9)中部署上述所有战争时,服务间通信没有发生。尽管zuul能够路由来自客户端的所有请求。但是当我使用rest模板从servicea->serviceb调用时,我总是被拒绝连接。
我如何部署战争,
eurekaserverservice.war作为根上下文中的root.war
zuulgatewayservice作为zuulgatewayservice.war
战争
战争
如果想通过zuul使用任何api,这是没有问题的,但是当使用servicea中调用serviceb的任何api时,我得到了连接被拒绝的错误。
下面是实际错误
**Forwarding to error page from request [/users/test] due to exception [I/O error on GET request for "http://serviceB/testMethod/test": Connect to 192.168.1.67:9053 [/192.168.1.67] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to 192.168.1.67:9053 [/192.168.1.67] failed: Connection refused (Connection refused)]
org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://serviceB/testMethod/test": Connect to 192.168.1.67:9053 [/192.168.1.67] failed: Connection refused (Connection refused); nested exception is org.apache.http.conn.HttpHostConnectException: Connect to 192.168.1.67:9053 [/192.168.1.67] failed: Connection refused (Connection refused)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:746) ~[spring-web-5.2.11.RELEASE.jar:5.2.11.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:672) ~[spring-web-5.2.11.RELEASE.jar:5.2.11.RELEASE]
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:313) ~[spring-web-5.2.11.RELEASE.jar:5.2.11.RELEASE]
at com.ddiva.userservice.Controllers.User.UserController.testUserController(UserController.java:104) ~[classes/:0.1.0-SNAPSHOT]**
My Controller //Service A controller, from where i want to call Service B
@GetMapping("/test")
public String testUserController() {
String str = restTemplate.getForObject("http://serviceB/testMethod/test", String.class);
return "User service is working"+str;
}
My Zuul:
zuul.routes.CUSTOMER-PRODUCT-SERVICE.path=/SERVICEB/**
zuul.routes.CUSTOMER-PRODUCT-SERVICE.service-id=SERVICEB
zuul.routes.CUSTOMER-PRODUCT-SERVICE.url=http://${server.address}:8080/SERVICEB/
My url which i am testing:
i.paddress:8080/ZUUL-GATEWAY-SERVICE/ddiva-api/SERVICEA/users/test
以前有人遇到过这个问题吗?
暂无答案!
目前还没有任何答案,快来回答吧!