dubbo部署到tomcat启动后显示管理界面后点击任何按钮都报错,错误如下

发布于 2021-11-25 09:35:26 字数 3411 浏览 913 评论 4

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

归途 2021-12-01 09:35:10

看了下Servlet3Util源码

package com.alibaba.citrus.util.internal;  import static com.alibaba.citrus.util.Assert.*; import static com.alibaba.citrus.util.CollectionUtil.*;  import java.io.IOException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.EventListener; import java.util.List; import javax.servlet.ServletOutputStream; import javax.servlet.WriteListener; import javax.servlet.http.HttpServletRequest;  import net.sf.cglib.reflect.FastClass; import net.sf.cglib.reflect.FastMethod;  /**  * Servlet 3.0 Support - 即使在非servlet 3.0的环境中,也不会出错。  * 此类会引用如下几个Servlet 3.0的接口。在Servlet 2.5的环境中,接口由<code>citrus-common-servlet</code>项目提供。  * <ul>  * <li><code>WriteListener</code></li>  * </ul>  *  * @author Michael Zhou  */ public class Servlet3Util {

注释说明需要使用servlet3.0的版本,所以换了tomcat8,启动后正常

servlet2.5版本是没有WriteListener类的

后知后觉 2021-12-01 08:24:21

当当有个dubbox,这个项目才是把dubbox的spring升级到3

兮颜 2021-12-01 07:40:35

不是这问题,我用的是2.5.4版本的,2.5.3才不兼容

野心澎湃 2021-11-27 02:18:13

确认没有引进spring 3以下版本

什么意思??我记得dubbo 本来就不支持 spring 3啊.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文