解决 dubbo-admin版本是2.5.4-SNAPSHOT 在jdk8运行报错的方法

第一天

启动zookeeper成功

编译dubbo2.5.4源码报告缺类,自作多情加了些类进来,打包dubbo-admin.war后,部署到tomcat8+JDK8的ROOT下发下报错:

Could not include schema "../wsdl/http-conf.xsd" in http://cxf.apache.org/schemas/configuration/http-conf.xsd
蛋疼的很,google/github/度娘都没有解决掉,网上下载了个现成的war和我的比较了下,去除多余的jar,启动成功。

下一步:重新编译源代码

目前参照github的说明已经修改dubbo-admin的配置如下:

https://github.com/alibaba/dubbo/issues/50

我使用的是JDK 1.8.0_05, dubbo-admin版本是2.5.4-SNAPSHOT,也遇到了一样的问题。解决方案如@ddatsh :

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>-->

确定war包解压后lib目录没有spring 3 以下的依赖就行。然后运行正常了。

相关推荐