https://blog.csdn.net/blue_dd/article/details/51298438
dubbo-admin在jdk1.8下报错问题(已解决)
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/blue_dd/article/details/51298438 </div>
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
<link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-cd6c485e8b.css">
<div class="htmledit_views" id="content_views">
在虚拟机上部署dubbo-admin的时候报错:
-
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)
-
at
org.
springframework.
beans.
factory.
support.
BeanDefinitionValueResolver.
resolveValueIfNecessary(
BeanDefinitionValueResolver.
java:122)
-
at
org.
springframework.
beans.
factory.
support.
BeanDefinitionValueResolver.
resolveManagedList(
BeanDefinitionValueResolver.
java:287)
查看源码如下:
解决方法:
1、更换服务器jdk版本。
2、修改dubbo-admin tomcat默认jdk版本。
3、修改dubbo-admin项目依赖(dependency)从新打包。
主要说下第三种方法:
https://github.com/alibaba/dubbo.git
下载导入源码后,修改如下配置:
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>-->
逐个项目编译,重新打包,部署。
![](https://i-blog.csdnimg.cn/blog_migrate/4e6ea94213843dd0c04357206ca4492c.png)
成功!