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、本地連線阿里雲的服務需要新增對應埠的安全組規則。