请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

WebApplicationType.NONE无法启动应用程序

application.setWebApplicationType(WebApplicationType.SERVLET);
为啥我这边只有设置WebApplicationType.SERVLET才能启动起来,而老师的WebApplicationType.NONE就能启动起来

正在回答 回答被采纳积分+3

5回答

慕运维6519169 2023-12-05 22:36:21

网上一通搜索,再加日志分析,确定就是设置WebApplicationType.NONE之后,主线程就关闭了,而之前启动的dubbo服务是daemon线程,不会阻止主线程关闭。主线程关闭之后整个spring容器就关闭了。而且是通过DubboShutdownHook优雅的关闭,所以退出状态是Process finished with exit code 0。

楼下提到的无论是引入spring-boot-starter或者spring-boot-starter-web都只是想阻止主线程关闭而已,而我们的provider并不需要这些依赖。

一种可行的办法是启动一个和主线程生命周期绑定的线程:

@SpringBootApplication
@EnableDubbo
public class ImProviderApplication {

    public static void main(String[] args) {
        SpringApplication springApplication = new SpringApplication(ImProviderApplication.class);
        springApplication.setWebApplicationType(WebApplicationType.NONE);
        springApplication.run(args);
        new Thread(
                ()->{
                    synchronized (ImProviderApplication.class){
                        try {
                            ImProviderApplication.class.wait();
                        }catch (Exception e){
                            e.printStackTrace();
                        }
                    }
                }
        ).start();
    }
}



4 回复 有任何疑惑可以回复我~
  • 老铁牛逼我这就写进我的简历
    回复 有任何疑惑可以回复我~ 2024-05-29 16:07:21
dae丶 2023-11-22 22:45:33

请问有解决的办法吗  我也是起不来

0 回复 有任何疑惑可以回复我~
  • 我也起不来,暂且按照这个application.setWebApplicationType(WebApplicationType.SERVLET);往下走,就是多暴露一个端口。。。。。玄学一样的环境
    回复 有任何疑惑可以回复我~ 2023-12-03 12:15:07
  • 是不是服务代码里面 没有需要暴露的dubbo服务,看看代码中有没有加dubboservice注解
    回复 有任何疑惑可以回复我~ 2023-12-03 18:27:03
  • 这些都查过,代码直接check out的,代码一点儿也没改,就是数据库和nacos连接不一样。我之前还想提问,但是那个log日志太长了,慕课不允许 ,就查到了这个问题。+Servlet只是权宜之计。我还来回升级了一下dubbo,spring boot和bootstrap版本,都没啥用。。。日志就是exit 0,正常结束的感觉。也没报什么error。
    回复 有任何疑惑可以回复我~ 2023-12-04 15:41:22
小鲍2652183 2023-09-26 02:01:12

我也是这个问题,请问解决了吗?

0 回复 有任何疑惑可以回复我~
w3n9 2023-08-09 10:29:34

这里是不是只引入spring-boot-starter更好,感觉不需要引入spring-boot-starter-web

0 回复 有任何疑惑可以回复我~
  • 你这个建议也不错,可以试试看
    回复 有任何疑惑可以回复我~ 2023-08-09 21:58:36
  • w3n9 回复 Danny_Idea #2
    试过了感觉挺好用,dubbo服务也会防止spring boot应用直接关闭
    回复 有任何疑惑可以回复我~ 2023-08-10 09:47:13
  • Danny_Idea 回复 w3n9 #3
    👍👍👍👍👍
    回复 有任何疑惑可以回复我~ 2023-08-10 09:49:26
Danny_Idea 2023-07-28 20:57:04
是不是因为你没有设置enabledubbo注解 或者服务上下文没有dubbo接口要暴露
0 回复 有任何疑惑可以回复我~
  • 我也是这个问题,请问视频中有展示暴露dubbo接口的服务上下文吗
    回复 有任何疑惑可以回复我~ 2023-11-05 17:14:42
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信