通过Dubbo:从入门到实战在初步了解dubbo以后,我决定先安装配置zookeeper:
遇到两个坑(windows系统):
1.从2.6版本以后官网下载将源码和打包好的分开了,如果只下载源码是没办法运行的,需要将那个可以运行的zookeeper根目录下的lib目录复制过来,否则启动zkServer会报无法加载主类的错误,之后闪退。
2在启动zkServer.cmd没有问题的情况下(不要关闭)启动zkCli.cmd,否则zkCli.cmd会一直报错。
之后我安装了dubbo-admin
注意老版本必须要求先安装好zookeeper:
之后开始运行demo中的dubbo-provider(注在导入jar包依赖后会有重复的,最好去掉,去掉办法百度idea去掉重复jar包)
首先运行会报错
log4j:WARN No appenders could be found for logger (org.springframework.core.env.StandardEnvironment).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
这是因为没有log4j的配置文件(在resources目录下新建一个log4j.properties文件):
# Global logging configuration 开发时候建议使用 debug
log4j.rootLogger=DEBUG, stdout
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
但是始终会报错
这是因为我将类全部放在了根目录,放在一个包下就不会报错(找了一天有点想哭)。
到这里服务提供者就创建好了。
之后按步就班创建消费者,成功消费:
dubbo服务提供方的xml配置文件中
<dubbo:service interface="com.ProviderService" ref="providerServiceImpl"/> <bean id="providerServiceImpl" class="com.ProviderServiceImpl"/>
service标签里的ref对应Spring容器中bean的id(先生成bean,再暴露)
dubbo服务消费方的xml配置文件中:
<dubbo:reference id="providerService" interface="com.ProviderService"/>
id对应自动生成bean的id(与服务提供方没有关系)