Док-хост rmi выбрасывает недопустимые полномочия, но может пропинговать - PullRequest
0 голосов
/ 03 июня 2018

У меня Alfresco, работает на одном док-контейнере A и выставляет rmi на скажем, 33333 .Другой обычный java-сервис работает в контейнере B. Оба подключены к одной и той же настраиваемой мостовой сети.

Когда контейнер B пытается соединиться с Alfresco через rmi, используя url rmi://alfresco:33333, он выдает java.net.MalformedURLException: invalid authority: rmi://alfresco:33333/Abcdefghi.Но то же самое может ping на свежем воздухе.Я думаю, что формат URL, указанный в rmi, неверен.если так.Чем его заменить?Я уже пробовал alfresco, alfresco.abc.но та же ошибка сохраняется.

Или я что-то упустил в файле docker-compose?

Вот пример конфигурации обоих файлов компоновки.

На открытом воздухе (контейнер A):

version: '3'
services:
    alfresco:
        image : xxxxxxx:latest
        container_name : alfresco
        expose: 
            - "33333"
        ports:
            - xxxx:xxxx
networks:
  default:
    external:
      name: test

Сервис (контейнер B):

version: '2.2'
services:
  abc:
    image: openjdk:8-jre-slim 
    working_dir: /home
    entrypoint: java -jar ABC.jar

networks:
  default:
    external:
      name: test 

1 Ответ

0 голосов
/ 04 июня 2018

выяснил причину.RMI ожидает либо IP-адрес, либо действительный домен.Поскольку alfresco доступно через обнаружение службы и пинг распознает его, RMI предполагает, что это неверный URL.Следовательно, я должен дать псевдоним для хоста alfresco в допустимом формате URL.

Я дал псевдоним alfresco.local, теперь он работает нормально.

Вот мой модифицированный файл Compose для Alfresco:

Alfresco (Контейнер A)

version: '3'
services:
    alfresco:
        image : xxxxxxx:latest
        container_name : alfresco
        networks:
        default:
            aliases:
                - alfresco.local #specify an alias in some valid DNS format
        expose: 
            - "33333"
        ports:
            - xxxx:xxxx
networks:
  default:
    external:
      name: test
...