搭建dubbo-admin管理平台,一次及其惨痛的经历!

搭建一个dubbo-admin花费了整整两天两夜的时间,写篇文章记录下,以此为训。

搭建步骤

1、首先到github上下载,https://github.com/apache/dubbo,注意2.5.x版本才有dubbo-admin源码,切换分支并下载:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第1张图片
2、解压下载好的压缩包到dubbox-master目录,解压后文件目录如下:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第2张图片
3、用idea导入项目时,要整个dubbox-master都导入,不能只导入dubb-admin子模块,不然很容易出现依赖版本冲突问题,我一开始的做法就是这样,遇到了很多坑。

4、用idea部署编译maven项目,修改dubb.properties配置文件,修改zookeeper地址为自己的,能编译成功一般就可以进行war包的打包。这个zookeeper是我部署在虚拟机的集群,并且可以跑起来
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第3张图片

5、使用mvn命令打包,这里遇到一个坑,idea使用mvn命令报错,然后转移到cmd命令行,居然没有报错。
在idea的terminal下运行命令:

搭建dubbo-admin管理平台,一次及其惨痛的经历!_第4张图片
cmd命令行下运行可以,发现是因为我的环境变量里面配置好了maven-home:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第5张图片
6、进入dubbo-admin目录打成war包:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第6张图片搭建dubbo-admin管理平台,一次及其惨痛的经历!_第7张图片
7、将war包放到tomcat根目录下的webapps目录
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第8张图片
8、启动zookeeper,启动tomcat,双击tomcat根目录下的bin目录下的startup.bat启动
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第9张图片
注意要配好tomcat的环境变量CATALINA_BASE,CATALINA_HOME,若电脑中有多个tomcat,那其实无论起那个tomcat的startup.bat,都是根据环境变量将对象的tomcat跑起来的,我遇到了一个坑就是把war包放在tomcat1上,然后启动tomcat1,通过启动日志发现加载的是另外一个tomcat(Tomcat2)的项目,原来是我的电脑环境变量配置的是tomcat2,然后把war转移到tomcat2,可以被加载到。

9、启动后,tomcat的webapps会生成相应的目录
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第10张图片
进入该目录可以对比到自己的项目文件是否发布完成,项目依赖的jar包放在了WEB_INF的lib目录下:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第11张图片
10、浏览器访问localhost:8080/dubbo-admin-2.8.4
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第12张图片
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第13张图片
完成!

在搭建过程中遇到的各种坑:

1)启动tomcat的时候没有报错,但是浏览器访问404,说明打的war包是有问题,大可能war包的资源文件补不全,可以通过查看发布到tomcat的项目目录排查。搭建dubbo-admin管理平台,一次及其惨痛的经历!_第14张图片
我是无意间看到自己的war包居然只有1k的大小,这绝对是有问题的,因为当时只导入了dubbo-admin模块进行打包,然后还把pom.xml的build配置给去掉了,然后只好重新把github的整个zip都下载下来,解压,打包。
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第15张图片
2)启动tomcat报错,Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第16张图片
这是由于spring版本太高造成的,将dubbox-master下的控制统一版本的pom.xml修改spring版本为3.2.9.RELEASE:
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第17张图片
3)打包编译报错,[ERROR] Failed to execute goal on project dubbo-admin: Could not resolve dependencies for project com.alibaba:dubbo-admin:war:2.5.4-SNAPSHOT: Could not find artifact com.alibaba:dubbo:jar:2.5.4-SNAPSHOT -> [Help 1]
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第18张图片
修改dubbo-admin下的pom.xml文件
将 ${project.parent.version} 修改为2.5.3

<dependency>

   <groupId>com.alibaba</groupId>
   <artifactId>dubbo</artifactId>
   <version>${project.parent.version}</version>
  </dependency>
修改后:
<dependency>
   <groupId>com.alibaba</groupId>
   <artifactId>dubbo</artifactId>
   <version>2.5.3</version>
  </dependency>

4)tomcat启动报错,Invalid property ‘URIType’ of bean class
搭建dubbo-admin管理平台,一次及其惨痛的经历!_第19张图片
网上百度很多坑货玩意儿建议将jdk1.8换为jdk1.7,结果花了半天时间下载部署好jdk1.7,idea引入之后完全没办法编译,一直报发行版问题,实在是没办法还是换回jdk1.8,采用另外一个网友dubbo 2.5.4-SNAPSHOT dubbo-admin 报错的解决方法,确实行:

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

5)修改pom.xml文件后,重新mvn编译,导致发布的war包里有很多重复且版本不同的jar包,这是因为编译前target未清空,导致解决方法未能生效,所以谨记,千万要谨记,以后修改pom.xml后,重新编译war包一定记得把target目录先清空,避免造成不必要的麻烦!!

你可能感兴趣的:(dubbo,java,maven,tomcat,jdk)