apache / apache/servicecomb-java-chassis
Help!! Error in consuming Spring boot standalone Application API's Via Gateway <o.a.s.t.rest.vertx.VertxRestDispatcher : http server failed.>
- Dominant language
- Java
- Stars
- 1.9k
- Forks
- 814
- Avg merge
- 8d 23h
- Merged PRs (30d)
- 1
Description
I have built a microservice provider based in Spring boot standalone starter. It listens on port `8116`. The Rest API's provided by this service can be consumed directly on this port `8116` with postman.
However when routed via Gateway, I am getting the below error in the provider.
```
2022-08-02 13:22:45.980 ERROR 44749 --- [ntloop-thread-8] o.a.s.t.rest.vertx.VertxRestDispatcher : http server failed.
io.vertx.core.VertxException: Connection was closed
```
And At the `gateway` the request is getting timedout.
```
2022-08-02 13:22:45.921 INFO 77044 --- [ntloop-thread-5] o.a.s.t.r.c.http.RestClientInvocation : Request timeout, Details: The timeout period of 30000ms has been exceeded while executing POST /oauth2/token for server 192.168.1.2:8116.
2022-08-02 13:22:46.001 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : Found SPI service org.apache.servicecomb.swagger.invocation.exception.ExceptionToProducerResponseConverter, count=8.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 0. org.usb.talech.microservices.runtime.exceptionConverters.ConstraintViolationExceptionToProducerResponseConverter.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 1. org.usb.talech.microservices.runtime.exceptionConverters.IllegalArgumentExceptionToProducerResponseConverter.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 2. org.apache.servicecomb.swagger.invocation.validator.ConstraintViolationExceptionToProducerResponseConverter.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 3. org.usb.talech.microservices.runtime.exceptionConverters.BusinessExceptionToProducerResponseConverter.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 4. org.apache.servicecomb.swagger.invocation.exception.InvocationExceptionToProducerResponseConverter.
2022-08-02 13:22:46.002 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 5. org.apache.servicecomb.swagger.invocation.exception.DefaultExceptionToProducerResponseConverter.
2022-08-02 13:22:46.003 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 6. org.apache.servicecomb.core.exception.IllegalArgumentExceptionToProducerResponseConverter.
2022-08-02 13:22:46.003 INFO 77044 --- [ntloop-thread-5] o.a.s.f.common.utils.SPIServiceUtils : 7. org.apache.servicecomb.core.exception.ThrowableExceptionToProducerResponseConverter.
2022-08-02 13:22:46.232 ERROR 77044 --- [ntloop-thread-5] i.v.c.http.impl.HttpClientRequestImpl : io.vertx.core.http.impl.NoStackTraceTimeoutException: The timeout period of 30000ms has been exceeded while executing POST /oauth2/token for server 192.168.1.2:8116
```
This is my provider Main application.
```
package com.pos.oauth.app.starter;
import org.apache.servicecomb.springboot2.starter.EnableServiceComb;
import org.apache.servicecomb.tracing.zipkin.EnableZipkinTracing;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.WebApplicationType;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.domain.EntityScan;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.ImportResource;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import com.pos.oauth.service.inter.IPOSMFAAuthLoginWebService;
@SpringBootApplication(scanBasePackages= {"com.pos"})
@EnableServiceComb
@EnableAutoConfiguration
@ComponentScan({"com.pos"})
@EntityScan(basePackages ={"com.pos"} )
@EnableZipkinTracing
@EnableJpaRepositories("com.pos")
@ImportResource("classpath:application-context.xml")
public class OAuthServiceMainStandAlone {
public static void main(String[] args) {
new SpringApplicationBuilder().sources(OAuthServiceMainStandAlone.class).web(WebApplicationType.NONE).build().run(args);
}
}
```
ANd this is my provider configuration
```
server:
port: 0
# java-chassis configuration
servicecomb-config-order: 1
APPLICATION_ID: talech-services
service_description:
name: oauth-service
version: 4.0.1
servicecomb:
service:
registry:
address: http://127.0.0.1:30100
rest:
address: 0.0.0.0:8116
highway:
address: 0.0.0.0:7070
handler:
chain:
Provider:
default: bizkeeper-provider
spring:
datasource:
password: pospassword
url: jdbc:mysql://localhost:3306/oauth?jdbcCompliantTruncation=false&connectTimeout=30000&socketTimeout=60000&useUnicode=yes&characterEncoding=UTF-8
username: posuser
dozer:
mapping-files: classpath*:/dozer-mapping.xml
```
What i am doing wrong? Why gateway routed requests are failing at provider?
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.