Dubbo管理后台 war包部署

老版本的dubbo管理后台是个spring boot项目,当已 jar 的方式部署时可以正常启动和访问,当已 war 的方式部署时,发现启动是可以正常启动,当点击访问服务时,报出空指针异常。报错信息如下

Dubbo管理后台 war包部署

打断点跟进去发现 没有拿到spring上下文对象。

Dubbo管理后台 war包部署

查看调用方法,是spring boot的启动类,将 ApplicationContext 为其赋值。

Dubbo管理后台 war包部署

这也就难怪会报出NP异常了,已war包部署项目,需要初始化servlet,我们新建一个类,继承 SpringBootServletInitializer ,如果只重写 configure 方法还是不够的,需要再重写 onStartup 方法,在启动时再将获取到的 ApplicationContext对象赋值给SpringUtils。

Dubbo管理后台 war包部署

再次编译启动,问题得到解决。