dubbo部署到tomcat启动后显示管理界面后点击任何按钮都报错,错误如下
java.lang.NoClassDefFoundError: Could not initialize class com.alibaba.citrus.util.internal.Servlet3Util
com.alibaba.citrus.service.requestcontext.impl.RequestContextChainingServiceImpl.getRequestContext(RequestContextChainingServiceImpl.java:246)
com.alibaba.citrus.webx.support.AbstractWebxRootController.getRequestContext(AbstractWebxRootController.java:352)
com.alibaba.citrus.webx.support.AbstractWebxRootController.service(AbstractWebxRootController.java:148)
com.alibaba.citrus.webx.servlet.WebxFrameworkFilter.doFilter(WebxFrameworkFilter.java:152)
com.alibaba.citrus.webx.servlet.FilterBean.doFilter(FilterBean.java:148)
com.alibaba.citrus.webx.servlet.SetLoggingContextFilter.doFilter(SetLoggingContextFilter.java:61)
com.alibaba.citrus.webx.servlet.FilterBean.doFilter(FilterBean.java:148)
jdk是1.8 改了一些dubbo后台的依赖引入:
1、webx的依赖改为3.1.6版;
<dependency>
<groupId>com.alibaba.citrus</groupId>
<artifactId>citrus-webx-all</artifactId>
<version>3.1.6</version>
</dependency>
2、添加velocity的依赖,我用了1.7;
<dependency>
<groupId>org.apache.velocity</groupId>
<artifactId>velocity</artifactId>
<version>1.7</version>
</dependency>
3、对依赖项dubbo添加exclusion,避免引入旧spring
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>${project.parent.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
4、webx已有spring 3以上的依赖,因此注释掉dubbo-admin里面的spring依赖
<!--<dependency>-->
<!--<groupId>org.springframework</groupId>-->
<!--<artifactId>spring</artifactId>-->
<!--</dependency>-->
启动到dubbo后台首页正常,点击任何按钮就报错了
确认没有引进spring 3以下版本,没有citrus-webx-all冲突包,citrus-webx-all的jar包有在lib目录下
请大神帮忙解决下
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
看了下Servlet3Util源码
注释说明需要使用servlet3.0的版本,所以换了tomcat8,启动后正常
servlet2.5版本是没有WriteListener类的
当当有个dubbox,这个项目才是把dubbox的spring升级到3
不是这问题,我用的是2.5.4版本的,2.5.3才不兼容
什么意思??我记得dubbo 本来就不支持 spring 3啊.