sofastack / sofa-ark

SOFAArk is a light-weight,java based classloader isolation framework.
https://www.sofastack.tech/projects/sofa-boot/sofa-ark-readme/
Apache License 2.0
1.57k stars 500 forks source link

web-ark-plugin与webflux的冲突如何解决 #470

Closed liu280790081 closed 2 years ago

liu280790081 commented 2 years ago

image web-ark-plugin 我看这个插件中引用了tomcat 和webflux中的有冲突 有没有其他的插件可做替换

现在在做的工程先将多个服务依赖到宿主应用这,但我们的应用大多都是webflux的框架,如何能让宿主应用做的兼容webmvc于webflux

liu280790081 commented 2 years ago

这个是demo https://github.com/liu280790081/sofachannel-demo.git

liu280790081 commented 2 years ago

spring.log

日志文件

glmapper commented 2 years ago

@liu280790081 web-ark-plugin 基于 servlet 容器(目前是 tomcat),暂时没有提供对于 webflux 的插件支持;如果你使用的是 tomcat 容器,可以尝试

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
        <exclusions>
            <!-- Exclude the Netty dependency -->
            <exclusion>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-reactor-netty</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <!-- Use Tomcat instead -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-tomcat</artifactId>
    </dependency>
liu280790081 commented 2 years ago

@glmapper 感谢你的解答,不过这一问题我已解决,虽然不太清楚其中的原理。我是通过dynamic-provider模块的pom.xml 引入

         <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>sofa-ark-springboot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>com.alipay.sofa</groupId>
            <artifactId>web-ark-plugin</artifactId>
        </dependency>

完成的webmvc与webflux兼容问题。 同时我又遇到了新的问题,已提出新的issues sofaboot从3.2.2切换到3.3.1版本导致抛出异常 No SofaRuntimeManager Found!

lylingzhen commented 2 years ago

与 “Ark 支持 WebFlux” 是重复的问题?

lylingzhen commented 2 years ago

这个问题已经由另一个 Issue 跟进,先关闭,如果有问题可以随时重开