美文网首页
active mq启动报错

active mq启动报错

作者: 咸鱼佬 | 来源:发表于2018-09-23 11:24 被阅读45次

打算学习active mq 刚刚在window 装了 一启动就报错了 ........

O   | jvm 1    | 2018/09/22 18:22:23 | ERROR | Failed to start Apache ActiveMQ (localhost, ID:jinxiong_li-38950-1537611742915-0:1)
INFO   | jvm 1    | 2018/09/22 18:22:23 | java.net.URISyntaxException: Illegal character in hostname at index 13: ws://jinxiong_li:61614?maximumConnections=1000&wireFormat.maxFrameSize=104857600
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.fail(URI.java:2848)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.parseHostname(URI.java:3387)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.parseServer(URI.java:3236)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.parseAuthority(URI.java:3155)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.parseHierarchical(URI.java:3097)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI$Parser.parse(URI.java:3053)[:1.8.0_66]
INFO   | jvm 1    | 2018/09/22 18:22:23 |   at java.net.URI.<init>(URI.java:673)[:1.8.0_66]

解决过程

当时控制台显示的错误信息是 IllegalStateException: BeanFactory not initialized,继而顺势知道自己本机的用户名包含着下划线,然后找到日志。修改了之后重启电脑就解决了。

但是当时想为什么不能包含_??

当时第一个想到的是url不能包含的字符。但是查找一圈发现 URL 中只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~ 4个特殊字符以及所有保留字符。下划线是允许的 那么问题是啥

后来一堆波折 又重新认识了 uri url之间的关系

作者:daixinye
链接:https://www.zhihu.com/question/21950864/answer/154309494
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

统一资源标志符URI就是在某一规则下能把一个资源独一无二地标识出来。拿人做例子,假设这个世界上所有人的名字都不能重复,那么名字就是URI的一个实例,通过名字这个字符串就可以标识出唯一的一个人。现实当中名字当然是会重复的,所以身份证号才是URI,通过身份证号能让我们能且仅能确定一个人。那统一资源定位符URL是什么呢。也拿人做例子然后跟HTTP的URL做类比,就可以有:动物住址协议://地球/中国/浙江省/杭州市/西湖区/某大学/14号宿舍楼/525号寝/张三.人可以看到,这个字符串同样标识出了唯一的一个人,起到了URI的作用,所以URL是URI的子集。URL是以描述人的位置来唯一确定一个人的。在上文我们用身份证号也可以唯一确定一个人。对于这个在杭州的张三,我们也可以用:身份证号:123456789来标识他。所以不论是用定位的方式还是用编号的方式,我们都可以唯一确定一个人,都是URl的一种实现,而URL就是用定位的方式实现的URI。回到Web上,假设所有的Html文档都有唯一的编号,记作html:xxxxx,xxxxx是一串数字,即Html文档的身份证号码,这个能唯一标识一个Html文档,那么这个号码就是一个URI。而URL则通过描述是哪个主机上哪个路径上的文件来唯一确定一个资源,也就是定位的方式来实现的URI。对于现在网址我更倾向于叫它URL,毕竟它提供了资源的位置信息,如果有一天网址通过号码来标识变成了http://741236985.html,那感觉叫成URI更为合适,不过这样子的话还得想办法找到这个资源咯…       

但这个时候还是没有解决掉为什么不能包含下划线

然后将问题看到 java.net.URI 这个类,进去找到 Illegal character in hostname的地方 进而上网继续查找资料

终于找到一篇文章了
解决了哈哈哈

得知域名 不能包含下划线
rfc952

image

url 组成

而目前所见,只有在broker中使用到我的计算机名

image
但是目前我还没知道有什么用这个id(还没学mq) 集群?域名?

引用

https://www.jianshu.com/p/2c097bdb121e
https://stackoverflow.com/questions/21254389/apache-activemq-starts-then-stops-abruptly-on-windows
https://tools.ietf.org/html/rfc952
https://www.tanglei.name/blog/conflicts-between-java-net-url-and-java-net-uri-when-dealing-with-hostname-contains-underscore.html

相关文章

网友评论

      本文标题:active mq启动报错

      本文链接:https://www.haomeiwen.com/subject/uzifoftx.html