上一章主要是談到zookeeper的安裝和部署
因為zookeeper只是一個黑框,我們無法看到是否存在了什么提供者或消費者,這時就要借助Dubbo-Admin管理平台來實時的查看,也可以通過這個平台來管理提者和消費者。
dubbo-admin.war可以通過網上下載得到,但是我下載了很多版本,都不能使用,這個的原因大概是因為我們本地的jdk編譯和打包的問題.所以最好的方式是由GITHUB上下載以后自己打包編譯。另外本地一直要安裝maven和JDK
首先從github上下載dubbo-admin的源碼,dubbo的所有源碼可在上下載。
使用命令 git clone https://github.com/alibaba/dubbo.git
或者直接在網站上使用Download zip的方式,如下圖所示
下載完成后進行解壓,直接使用maven導入該項目:
解壓后的文件內容,這里你其它的都不用去管,只管導入dubbo-admin.
使用maven命令進行eclipse:eclipse編譯,編譯完成后,
然后到webapps/ROOT/WEB-INF下,有一個dubbo.properties文件,里面指向Zookeeper ,使用的是Zookeeper 的注冊中心:
dubbo.registry.address=zookeeper://127.0.0.1:2181 dubbo.admin.root.password=root dubbo.admin.guest.password=guest
將該幾項調整為你本地的zookeeper地址后, 就可以直接在eclipse上直接導出war包了,然后將war包放到tomcat中的webapps目錄下,
這時一定要先啟動zookeeper,之后再啟動tomcat
如果你的本地使用的是JDK1.8的話.啟動tomcat可能會報以下錯誤:
ERROR context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uriBrokerService': Cannot create inner bean '(inner bean)' of type [com.alibaba.citrus.service.uribroker.impl.URIBrokerServiceImpl$URIBrokerInfo] while setting bean property 'brokers' with key [0]; nested excepti on is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#25': Cannot create inner bean 'server' of type [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker] while setting constructor argument; nested exception is org.springframework.beans.fact ory.BeanCreationException: Error creating bean with name 'server': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:230)
這時就需要你重新回到eclipse中修改POM文件
找到pom.xml
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 以下的依賴就行。然后運行正常了。
此時再次打出war包后,輸入正確的賬號密碼,就可以正常訪問了.