今天做Dubbo项目的时候发现三个大坑
每次启动都会报一个No Such Elements [array]的错误
是Dubbo2.5.3本身自带的Spring包与现版本的Spring包版本不同出的问题,项目加载过程中,JVM会先去读取Dubbo的jar包中的Spring包,而不是我们自己配置的Spring包。
解决方法:只需要到导入jar包时排除这个Spring包即可
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>dubbo</artifactId>
<version>2.5.3</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
</exclusion>
</exclusions>
</dependency>
消费端无法获取到服务端提供的服务
在单独启动服务端,即service端后,在linux中的zookeeper看到服务是已经提供进去了,可是消费端一直无法获取到,导致日志一直包Bean自动注入失败。在确定了虚拟机防火墙、配置文件的内容后,实在找不出什么错误了。最坑的点来了,我把项目删了,重写一遍一模一样的代码,结果居然没有报错了。虽然没有报错,但是还是无法成功运行。做项目就是在一个接一个bug中度过,解bug的过程也能让我们更加了解项目具体的底层运行流程,也算是因祸得福吧。
没有报错但是显示servlet-api-2.4.jar - jar not loaded
百度了以下,去项目的文件夹下,删除\WEB-INF\lib\下的servlet-api-2.4.jar即可,原因好像是jsp-api.jar和servlet-api.jar这两个包tomcat的common\lib已经有了,重复的话会有冲突。