1. 程式人生 > >Dubbo-DubboAdmin安裝遇到問題總結

Dubbo-DubboAdmin安裝遇到問題總結

首先說明一下,來來回回折騰兩天,把遇到的問題進行總結。

一、下載

1、首先到github上下載,這個是分支地址,找到自己想要的版本:https://github.com/apache/incubator-dubbo/releases

我這裡版本為incubator-dubbo-dubbo-2.5.4

二、安裝Dubbo

解壓檔案之後先進到根目錄先安裝dubbo依賴,如果沒有安裝dubbo到時候安裝dubbo-admin的時候就會報錯,進到目錄使用mvn package
在這裡插入圖片描述

等待出現success提示資訊,則說明依賴安裝成功,此時可以到你本地的mvn倉庫上能看到dubbo-2.5.4-SNAPSHOT.jar

在這裡插入圖片描述
目錄是在你自己的本地mvn倉庫上E:\Program Files\ApacheMaven3.5\MavenRepository\com\alibaba\dubbo\2.5.4-SNAPSHOT參考自己的目錄。

三、安裝Dubbo-admin

首先進到dubbo-admin模組目錄下。
然後百度出一條命令開心的打包mvn package -Dmaven.test.skip=true
在這裡插入圖片描述
此時非常開心,終於打包成功。
接下就把打包好的dubbo-admin-2.5.4-SNAPSHOT.war複製到tomcat的webapps目錄下,當然名字太長我這裡直接改成dubbo-admin.war


此時可以啟動tomcat。在tomcat的bin目錄下找到startup.bat,雙擊執行啟動,注意windows下是找到startup.bat,linux下是startup.sh
啟動完成後到瀏覽器輸入localhost:8080/dubbo-admin
在這裡插入圖片描述
然後百度找dubbo-admin啟動404的相關文章,結果還是沒有什麼用。然後看到tomcat的啟動日誌檔案,結果如下。

16-Oct-2018 10:02:44.155 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\dubbo-admin.war]
16-Oct-2018 10:02:54.888 資訊 [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
INFO: configuring "log4j" using file:/E:/InstallPackage/KFPackage/apache-tomcat-8.5.31/webapps/dubbo-admin/WEB-INF/log4j.xml
 - with property localAddress = 192.168.100.100
 - with property localHost = DESKTOP-1DFSV5L
 - with property loggingCharset = UTF-8
 - with property loggingLevel = INFO
 - with property loggingRoot = C:\Users\Kyrie\logs

 INFO context.ContextLoader - Root WebApplicationContext: initialization started
 INFO support.XmlWebApplicationContext - Refreshing Root WebApplicationContext: startup date [Tue Oct 16 10:02:55 CST 2018]; root of context hierarchy
 INFO xml.XmlBeanDefinitionReader - Loading XML bean definitions from ServletContext resource [/WEB-INF/applicationContext.xml]
ERROR context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:344)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:181)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:217)
        at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:188)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
        at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
        at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:129)
        at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:614)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:515)
        at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:443)
        at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:325)
        at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:107)
        at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:4792)
        at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5256)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]
        at org.springframework.web.context.support.ServletContextResource.getInputStream(ServletContextResource.java:141)
        at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330)
        ... 25 more
16-Oct-2018 10:02:55.573 嚴重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
16-Oct-2018 10:02:55.584 嚴重 [localhost-startStop-1] org.apache.catalina.core.StandardContext.startInternal Context [/dubbo-admin] startup failed due to previous errors
 INFO support.XmlWebApplicationContext - Closing Root WebApplicationContext: startup date [Tue Oct 16 10:02:55 CST 2018]; root of context hierarchy
 WARN support.XmlWebApplicationContext - Exception thrown from LifecycleProcessor on context close
java.lang.IllegalStateException: LifecycleProcessor not initialized - call 'refresh' before invoking lifecycle methods via the context: Root WebApplicationContext: startup date [Tue Oct 16 10:02:55 CST 2018]; root of context hierarchy
        at org.springframework.context.support.AbstractApplicationContext.getLifecycleProcessor(AbstractApplicationContext.java:427)
        at org.springframework.context.support.AbstractApplicationContext.doClose(AbstractApplicationContext.java:999)
        at org.springframework.context.support.AbstractApplicationContext.close(AbstractApplicationContext.java:958)
        at org.springframework.web.context.ContextLoader.closeWebApplicationContext(ContextLoader.java:583)
        at org.springframework.web.context.ContextLoaderListener.contextDestroyed(ContextLoaderListener.java:116)
        at org.apache.catalina.core.StandardContext.listenerStop(StandardContext.java:4839)
        at org.apache.catalina.core.StandardContext.stopInternal(StandardContext.java:5478)
        at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:226)
        at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:754)
        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:730)
        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:734)
        at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:985)
        at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1857)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
16-Oct-2018 10:02:55.656 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deployment of web application archive [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\dubbo-admin.war] has finished in [11,500] ms
16-Oct-2018 10:02:55.661 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\docs]
16-Oct-2018 10:02:55.745 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\docs] has finished in [83] ms
16-Oct-2018 10:02:55.752 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\examples]
16-Oct-2018 10:02:57.497 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\examples] has finished in [1,745] ms
16-Oct-2018 10:02:57.498 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\host-manager]
16-Oct-2018 10:02:57.579 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\host-manager] has finished in [81] ms
16-Oct-2018 10:02:57.580 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\manager]
16-Oct-2018 10:02:57.645 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\manager] has finished in [65] ms
16-Oct-2018 10:02:57.646 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deploying web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\ROOT]
16-Oct-2018 10:02:57.692 資訊 [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployDirectory Deployment of web application directory [E:\InstallPackage\KFPackage\apache-tomcat-8.5.31\webapps\ROOT] has finished in [47] ms
16-Oct-2018 10:02:57.701 資訊 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["http-nio-8080"]
16-Oct-2018 10:02:57.720 資訊 [main] org.apache.coyote.AbstractProtocol.start Starting ProtocolHandler ["ajp-nio-8009"]
16-Oct-2018 10:02:57.729 資訊 [main] org.apache.catalina.startup.Catalina.start Server startup in 13683 ms

結果發現dubbo-admin並沒有啟動。出現一個異常,這個異常明顯說沒有找到一個叫applicationContext.xml的檔案,然後完全矇蔽,別人打包的沒問題我打包的居然報錯。

ERROR context.ContextLoader - Context initialization failed
org.springframework.beans.factory.BeanDefinitionStoreException: IOException parsing XML document from ServletContext resource [/WEB-INF/applicationContext.xml]; nested exception is java.io.FileNotFoundException: Could not open ServletContext resource [/WEB-INF/applicationContext.xml]

各種百度查詢。終於找到一個解決的辦法。原來是spring版本太高要換成3.2.9.RELEASE,然後找到incubator-dubbo-dubbo-2.5.4下的pom.xml找到spring的版本改成3.2.9.RELEASE
附上參考連結:https://my.oschina.net/iioschina/blog/1615086
在這裡插入圖片描述
修改完成之後儲存從新打包一份,此時看到dubbo-admin目錄下多了一個target檔案,可以直接手動刪除掉,或者執行命令mvn clean package -Dmaven.test.skip=true重新打包一份。
此時可以檢視一下spring版本是否成功修改,進到lib目錄下檢視E:\setup\incubator-dubbo-dubbo-2.5.4\dubbo-admin\target\dubbo-admin-2.5.4-SNAPSHOT\WEB-INF\lib,根據自己目錄。

在這裡插入圖片描述
然後又開心的把war包拿丟到webapps下啟動tomcat。
看到tomcat啟動資訊停止一直不動如圖
在這裡插入圖片描述
仔細看了一下資訊原來是在需要連線zookeeper,然後先關掉tomcat,進到dubbo-admin下的WEB-INF目錄下找到dubbo.properties修改zookeeper連線地址。由於我本地沒有安裝zookeeper,我連線的是阿里雲上的zookeeper。

dubbo.registry.address=zookeeper://120.79.135.254:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest

注意:如果是連線阿里雲上的zookeeper需要新增安全組規則。開放2181端口才可以,否則會報連線超時錯誤。這裡就不截圖了,我這裡已經新增好安全級規則。新增安全組規則就不在說明,在本地是沒有這個情況的。
此時在次啟動tomcat,檢視啟動日誌就沒有發現錯誤,此時訪問終於成功了。
在這裡插入圖片描述
預設使用者名稱密碼都是root,登入看到非常完美的dubbo-admin首頁
在這裡插入圖片描述

四、總結

1、遇到報錯需要仔細檢視啟動日誌這些,找對關鍵字,看是哪個異常報錯。
2、本地連線阿里雲的服務需要新增對應埠的安全組規則。