user-guide:http://dubbo.io/User+Guide-zh.htm
简单记录下过程和需要注意的地方:
我的环境和工具:jdk1.7 win10 Eclipse Mar tomcat7.0.69
1.下载并安装zookeeper,解压出来后,将conf文件下的zoo_sample.cfg复制一份更名为zoo.cfg,因为启动是zookeeper需要此文件。启动:cmd->zook/.../bin->zkServer.cmd即可;
2.下载一个dubbo-admin.2.5.4.war,这是一个管理服务程序,将其解压直接放到tomcat下的webapps文件下的ROOT文件中,即可。然后启动tomcat就可以了,这里需要注意:zookeeper的启动会用到8080端口,所以要更改tomcat下面的conf文件中server.xml中的端口号,比如:改更为8088;再者有需要的时候自行更改ROOT/web-inf/dubbo.properties文件中的东西:dubbo.registry.address=zookeeper://127.0.0.1:2181
dubbo.admin.root.password=root
dubbo.admin.guest.password=guest
启动tomcat:cmd->startup即可;
然后在浏览器输入local host:8088便会弹出输入用户名密码,默认情况下两个都是root;
3.然后就是服务提供者和服务消费者,此处请自己查看用户指导文档这里注意,如果是对象的传递;需要将对象序列化。
注意:先启动zookeeper,再启动tomcat,因为dubbo-admin需要在zookeeper的节点上进行。
踩到的坑:
1.provider.xml在复制的过程中,内容不小心空出了第一行;然后就报错:
Caused by: org.xml.sax.SAXParseException; lineNumber: 2; columnNumber: 6; 不允许有匹配 "[xX][mM][lL]" 的处理指令目标。
解决:<?xml version="1.0" encoding="UTF-8"?>这个务必放在xml文件的首行顶头。
2.没有更改tomcat默认端口号,导致和zookeeper共用8080端口,启动失败
3.dubbo-admin解压出来的文件拷贝进tomcat/webapps/ROOT之后,访问http://localhost:8088/可能会访问到ROOt文件下的index.jsp,会报错,需要注意。可以删掉或者更改掉后缀名即可。
4.传的是对象类型,没有实现Serializable接口,消费者调用的时候会报错。
这是最基本的实践。
2018-1-4 补充:
1.dubbo又开更,去网上down下了最新的zip之后,解压出来依然是想试用一下dubbo-admin进行可视化,然后打开cmd进入dubbo-admin路径下,在执行mvn package -Dmaven.skip.test=true,稍等一点时间,build success 即可,会在dubbo-admin文件下生成一个 target文件,我们只需要把dubbo-admin-2.5.8.war拷贝到tomcat/webapps里面启动就可以了。
2019-6-24
问题HessianProtocolException could not be instantiated
由于 缺失无参构造导致。