bettermanzzy opened a new issue #1085: Try to support spring-cloud-gateway URL: https://github.com/apache/servicecomb-java-chassis/issues/1085 I have try to support spring-cloud-gateway in ServiceComb-java-chassis. I have used spring-cloud-gateway to run demo program in java-chassis. The result is correct and forwarding function of gateway is OK. but when I use use gateway-webflux to write the following code , some errors have occurred. ```java @RestSchema(schemaId="gatewaySampleController ") @RequestMapping("/") public class GatewaySampleController { @Value("${remote.home}") private URI home; @GetMapping("/test") public Mono<ResponseEntity<byte[]>> proxy(ProxyExchange<byte[]> proxy) throws Exception { return proxy.uri(home.toString() + "/image/png").get(); } } ``` The error message is as follows : ```java java.lang.IllegalStateException: ServiceComb init failed. at org.apache.servicecomb.core.SCBEngine.init(SCBEngine.java:220) ~[classes/:na] at org.apache.servicecomb.core.CseApplicationListener.onApplicationEvent(CseApplicationListener.java:81) ~[classes/:na] at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:400) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:354) ~[spring-context-5.0.6.RELEASE.jar:5.0.6.RELEASE] at org.springframework.boot.context.event.EventPublishingRunListener.running(EventPublishingRunListener.java:103) ~[spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.SpringApplicationRunListeners.running(SpringApplicationRunListeners.java:78) ~[spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:343) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1255) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1243) [spring-boot-2.0.2.RELEASE.jar:2.0.2.RELEASE] at gateway.GatewaySampleApplication.main(GatewaySampleApplication.java:21) [classes/:na] Caused by: java.lang.Error: generate operation swagger failed, gateway.GatewaySampleController:proxy at org.apache.servicecomb.swagger.generator.core.SwaggerGenerator.scanMethods(SwaggerGenerator.java:276) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.SwaggerGenerator.generate(SwaggerGenerator.java:140) ~[classes/:na] at org.apache.servicecomb.core.definition.schema.AbstractSchemaFactory.generateSwagger(AbstractSchemaFactory.java:102) ~[classes/:na] at org.apache.servicecomb.core.definition.schema.ProducerSchemaFactory.createSchema(ProducerSchemaFactory.java:115) ~[classes/:na] at org.apache.servicecomb.core.definition.schema.ProducerSchemaFactory.createSchema(ProducerSchemaFactory.java:54) ~[classes/:na] at org.apache.servicecomb.core.definition.schema.AbstractSchemaFactory.getOrCreateSchema(AbstractSchemaFactory.java:58) ~[classes/:na] at org.apache.servicecomb.core.definition.schema.ProducerSchemaFactory.getOrCreateProducerSchema(ProducerSchemaFactory.java:76) ~[classes/:na] at org.apache.servicecomb.provider.rest.common.RestProducerProvider.init(RestProducerProvider.java:45) ~[classes/:na] at org.apache.servicecomb.core.provider.producer.ProducerProviderManager.init(ProducerProviderManager.java:51) ~[classes/:na] at org.apache.servicecomb.core.SCBEngine.doInit(SCBEngine.java:238) ~[classes/:na] at org.apache.servicecomb.core.SCBEngine.init(SCBEngine.java:209) ~[classes/:na] ... 12 common frames omitted Caused by: org.apache.servicecomb.foundation.common.exceptions.ServiceCombException: [simple type, class reactor.core.publisher.Mono] is abstract class. Must be a concrete type. at org.apache.servicecomb.swagger.extend.ModelResolverExt.checkType(ModelResolverExt.java:114) ~[classes/:na] at org.apache.servicecomb.swagger.extend.ModelResolverExt.resolve(ModelResolverExt.java:130) ~[classes/:na] at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:183) ~[swagger-core-1.5.12.jar:1.5.12] at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:100) ~[swagger-core-1.5.12.jar:1.5.12] at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:234) ~[swagger-core-1.5.12.jar:1.5.12] at org.apache.servicecomb.swagger.extend.ModelResolverExt.resolve(ModelResolverExt.java:125) ~[classes/:na] at io.swagger.jackson.ModelResolver.resolve(ModelResolver.java:183) ~[swagger-core-1.5.12.jar:1.5.12] at io.swagger.converter.ModelConverterContextImpl.resolve(ModelConverterContextImpl.java:100) ~[swagger-core-1.5.12.jar:1.5.12] at io.swagger.converter.ModelConverters.readAll(ModelConverters.java:83) ~[swagger-core-1.5.12.jar:1.5.12] at org.apache.servicecomb.swagger.generator.core.utils.ParamUtils.addDefinitions(ParamUtils.java:116) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.processor.response.DefaultResponseTypeProcessor.process(DefaultResponseTypeProcessor.java:39) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.OperationGenerator.createResponseProperty(OperationGenerator.java:426) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.OperationGenerator.scanResponse(OperationGenerator.java:413) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.OperationGenerator.generate(OperationGenerator.java:181) ~[classes/:na] at org.apache.servicecomb.swagger.generator.core.SwaggerGenerator.scanMethods(SwaggerGenerator.java:272) ~[classes/:na] ... 22 common frames omitted ``` To my opinion , the question occurs between gateway-webflux and swagger . According to error message, servicecomb swagger seem can not resolve abstract class. But the type used by webflux is Flux and Mono related to reaction time programming, and they are abstract classes. So, How to solve it? What about other's opinion?please feel free to let me know.
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
