首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SymmetricDS MalformedURLException

SymmetricDS MalformedURLException
EN

Stack Overflow用户
提问于 2014-11-25 23:53:34
回答 2查看 709关注 0票数 1

我正在配置SymmetricDS 3.6.12的两个实例。服务器实例在Glassfish 3服务器中工作,使用8181端口作为https。客户端实例在31417中以https端口作为服务运行(在jetty中)。这两个实例被配置并运行。客户端的sym_tables是用来自服务器的数据更新的,但是我想要同步的表中没有一个是工作的。我在服务器中得到了这个错误:

代码语言:javascript
复制
2014-11-25 23:34:31,493 WARN [ERPServer] [FileSyncService] [erpserver-file_push-1] Could not communicate with node 'PDV:19742872000153:19742872000153' at https://fe80:0:0:0:0:5efe:c0a8:18f%net10:31417/sync/19742872000153 because of unexpected error
java.net.MalformedURLException: Stream handler unavailable due to: For input string: "0:0:0:0:5efe:c0a8:18f%net10:31417"
at java.net.URL.<init>(URL.java:619)
at java.net.URL.<init>(URL.java:482)
at java.net.URL.<init>(URL.java:431)
at org.jumpmind.symmetric.transport.http.HttpTransportManager.getFilePushTransport(HttpTransportManager.java:217)
at org.jumpmind.symmetric.service.impl.FileSyncService.pushFilesToNode(FileSyncService.java:606)
at org.jumpmind.symmetric.service.impl.FileSyncService.execute(FileSyncService.java:593)
at org.jumpmind.symmetric.service.impl.NodeCommunicationService$2.run(NodeCommunicationService.java:307)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.IllegalStateException: Stream handler unavailable due to: For input string: "0:0:0:0:5efe:c0a8:18f%net10:31417"
at org.apache.felix.framework.URLHandlersStreamHandlerProxy.parseURL(URLHandlersStreamHandlerProxy.java:431)
at java.net.URL.<init>(URL.java:614)
... 9 more

更多信息

服务器是这样配置的:

代码语言:javascript
复制
engine.name=ERPServer
group.id=ERP
external.id=19742872000153ERP
registration.url=
sync.url=https://$(ipAddress):8181/symmetric_ds/sync/$(engineName)

客户端是这样配置的:

代码语言:javascript
复制
engine.name=19742872000153
group.id=PDV
external.id=19742872000153
registration.url=https://192.168.1.150:8181/symmetric_ds/sync/ERPServer
sync.url=https://$(ipAddress):31417/sync/$(engineName)

我检查了客户端正在使用的IPv6 (fe80:0:0:0:5efe:c0a8:18F%net10),并验证了它是一个有效的IP。查看错误消息的这一部分:

代码语言:javascript
复制
java.net.MalformedURLException: Stream handler unavailable due to: For input string: "0:0:0:0:5efe:c0a8:18f%net10:31417"

我们可以看到,url没有ip (fe80)的第一部分,相反,端口位于url (31417)。这是一个SymmetricDS错误吗?我能做些什么来解决这个问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-11-27 21:37:34

使用配置文件中的方括号解决了这个问题。正如@dave_thompson_085在评论中所说的

冒号:在URL中,当局分隔端口(如果使用密码的话),但也以IPv6“文字”格式使用,因此需要方括号。

因此,我以这种方式配置了同步url:

代码语言:javascript
复制
sync.url=https://[$(ipAddress)]:31417/sync/$(engineName)

并在节点表中执行相同的操作。

票数 0
EN

Stack Overflow用户

发布于 2014-11-26 13:17:32

注册网址是硬编码的:

代码语言:javascript
复制
registration.url=https://192.168.1.150:8181/symmetric_ds/sync/ERPServer

这就是客户机成功注册的原因。问题在于ipAddress变量的替换。检查为什么在客户端用fe80:0:0:0:0:5efe:c0a8:18f%net10替换它,并将其修复。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27138987

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档