Dubbo-admin踩坑历险记
环境声明
所有操作均为Windows10,64位环境下操作,jdk为1.8版本,zookeeper为3.4版本
在进行dubbo-admin安装之前,需要启动zookeeper,需要启动zookeeper,需要启动zookeeper(重要的事情说三遍),如何安装启动?大家可以参考这篇文章中的zookeeper部分
博文地址:https://blog.csdn.net/szy2333/article/details/107667112
安装dubbo管理控制台真是漫长的道路,至少对我这个菜鸡来说是这样的:
第一步:进入官网下载
首先,进入dubbo官网,在GitHub上下载dubbo-admin的代码
附上地址:https://github.com/apache/dubbo-admin
下载的是master状态下的代码:
下载完成后,目录如下:
第二步:打jar包
dubbo-admin目录下打开cmd命令窗口,并输入以下命令:
mvn clean package
却发现,BUILD FAILURE,如下图:
说我们test有问题,OK,那我们跳过测试环节,输入命令
mvn install -Dmaven.test.skip=true
然而问题并没有解决,接下来加入相关依赖,并在test中加入@Isnore注解,却仍然没有用,头大。。。
第三步:分析和解决问题
既然直接打包不行,那我们用 IDEA 打开项目,居然看到pom.xml有许多依赖项没有加入,如图:
那我们首先应该检查是不是maven的位置出错,导致依赖没能添加成功。在 File | Settings | Build, Execution, Deployment | Build Tools | Maven 路径下,进行文件配置,配置为自己maven安装目录下的setting文件:
随后,将项目添加到maven中,操作如下:
随后,查看Maven Projects,可以看到项目成功添加,且pom文件中错误只有三个,如图:
我们可以选择删除第一行红色处的代码,这样所有红色都可以消失,不过我这里没管,没有出错
点击dubbo-admin中的install
查看控制台信息,可以看到 BUILD SUCCESS字样,说明打包成功
在target目录下可以看到打包好的jar包:
第四步:执行jar包
将jar包单独拷贝出来,放入你所想的目录,随后在目录下打开cmd,输入命令
java -jar jar包名称
会出现如图所示的现象,说明启动成功!
并且可以看到端口为7001端口:
第五步:测试
在浏览器地址栏中输入:localhost:7001 ,会出现这样的框:
输入用户名和密码,即可成功登陆(默认账号密码均为root),随后得到这样的界面,说明操作成功!!!
其他奇奇怪怪的问题
在初步进行安装的道路上,我也是不断查询,其中也遇到各种奇怪的操作和问题,比如使用npm操作的,也有下载版本不同导致需要更改文件的,以下是我遇到的,共勉:
使用npm安装时,输入命令: npm install,出现以下错误界面:
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@2.1.3 (node_modules\fsevents):
这个是什么意思呢?原来是因为在mac环境下需要 fsevents,而其他的则不需要这个依赖,因此在windows或linux环境下,可以忽略这个警告
忽略上示警告后,输入命令:
npm run dev
然后,emmm,又出问题了:
error ‘XXX’ is never reassigned. Use ‘const’ instead
这又是什么东东?仔细看错误信息提示,原来是因为dubbo-admin-ui\src\util包下的index.js文件出问题了,说“XXX”变量永远不会重新赋值,强烈建议我们使用const,我们去试试,将文件内容改一下:
另一个错误怎么解决呢:
error Do not access Object.prototype method ‘hasOwnProperty’ from target object no-prototype-builtins
这个错误是什么意思?不要从目标对象no-prototype-buildins中访问Object.prototype方法‘has自有属性,不让我们用?这是因为在ECMAScript 5.1中,新增了 Object.create,它支持使用指定的 [[Prototype]] 创建对象。Object.create(null) 是一种常见的模式,用于创建将用作映射的对象。当假定对象将包含来自Object.prototype 的属性时,这可能会导致错误。该规则防止直接从一个对象调用某些 Object.prototype 的方法。
此外,对象可以具有属性,这些属性可以将 Object.prototype 的内建函数隐藏,可能导致意外行为或拒绝服务安全漏洞。例如,web 服务器解析来自客户机的 JSON 输入并直接在结果对象上调用 hasOwnProperty 是不安全的,因为恶意客户机可能发送一个JSON值,如 {“hasOwnProperty”: 1},并导致服务器崩溃。
为了避免这种细微的 bug,最好总是从 Object.prototype 调用这些方法。例如,foo.hasOwnProperty(“bar”) 应该替换为 Object.prototype.hasOwnProperty.call(foo, “bar”)
如图所示:
重新执行npm run dev命令:
错误解决
我的jar包
如果经过上述步骤,仍然没能打包成功,那么不妨试试我的jar包~
链接:https://pan.baidu.com/s/1W8yuBxptCn6QUrqbx_SlKA
提取码:mtcb
记得运行jar包之前一定要开启zookeeper哦,祝大家成功!