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

Ouverte
#3,255 5 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
Langage dominant
Java
Étoiles
1.9k
Forks
814
Merge moyen
8 j 23 h
PR mergées (30 j)
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?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

Commencez par OAuthServiceMainStandAlone et la configuration du provider, en particulier WebApplicationType.NONE, server.port et servicecomb.rest.address. Reproduisez POST /oauth2/token via le gateway tout en comparant les logs du provider et du gateway concernant la fermeture de la connexion et le timeout. Le travail est terminé lorsque la cause de configuration ou de compatibilité pertinente est identifiée et qu’un correctif vérifié est documenté.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
java, spring
Domaine
api, backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
25/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.