SymmetricDS MalformedURLException

1

Я настраиваю два экземпляра SymmetricDS 3.6.12. Экземпляр сервера работает на сервере Glassfish 3, используя порт 8181 как https. Экземпляр клиента работает как служба (в причале) с портом https в 31417. Эти два экземпляра настроены и запущены. Символы на клиенте были обновлены данными с сервера, однако ни одна из таблиц, которые я хочу синхронизировать, работает. Я получаю эту ошибку на сервере:

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

БОЛЬШЕ ИНФОРМАЦИИ

Сервер настроен таким образом:

engine.name=ERPServer
group.id=ERP
external.id=19742872000153ERP
registration.url=
sync.url=https://$(ipAddress):8181/symmetric_ds/sync/$(engineName)

Клиент настроен таким образом:

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: 0: 5efe: c0a8: 18f% net10), и подтвердил, что он действительный IP-адрес. Глядя на эту часть сообщения об ошибке:

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? Я могу что-то сделать, чтобы решить эту проблему?

  • 0
    что такое sync.url и registration.url на клиенте? можно найти в каталоге двигателей в файле .properties
  • 0
    это не похоже на действительный URL: fe80: 0: 0: 0: 0: 5efe: c0a8: 18f% net10
Показать ещё 2 комментария
Теги:
synchronization
symmetricds

2 ответа

0
Лучший ответ

Проблема была решена просто с помощью квадратных скобок в файле конфигурации. Как сказал @dave_thompson_085 в комментарии

Colon: в полномочии URL-адреса выделяется порт (и пароль, если он используется), но также используется в формате "буквальный" IPv6, поэтому для этого нужны квадратные скобки.

Поэтому я настроил URL-адрес синхронизации следующим образом:

sync.url=https://[$(ipAddress)]:31417/sync/$(engineName)

и сделал то же самое в таблице узлов.

0

Адрес регистрации жестко запрограммирован:

registration.url=https://192.168.1.150:8181/symmetric_ds/sync/ERPServer

и причина, по которой клиент успешно регистрируется. Проблема заключается в ipAddress переменных ipAddress. Проверьте, почему он заменил fe80:0:0:0:0:5efe:c0a8:18f%net10 у клиента и исправил его.

  • 0
    IPv6 правильный. Я считаю, что SymmetricDS использует порт как часть IP.
  • 0
    Посмотрите на комментарий dave_thompson_085

Ещё вопросы

Сообщество Overcoder
Наверх
Меню