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.>

Open
#3,255 5 comments 0 reactions 0 assignees View on GitHub
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.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.