Кодовая база RMI, подключающаяся к локальной кодовой базе - PullRequest
0 голосов
/ 03 марта 2012

Я пытаюсь провести некоторое тестирование с использованием RMI.

У меня есть файл .jar, содержащий классы с методами, которые мне нужно вызвать.В моих проектах netbeans у меня есть класс TestClient, который должен подключаться к ShareBroker, который является моим удаленным интерфейсом.Моя проблема в том, как установить правильный адрес для java.rmi.server.codebase и какой адрес мне нужно иметь в моем TestClient для поиска ShareBrooker.

Я пробовал несколько разных адресов и комбинацийно не мог заставить это работать.Для этого теста мне нужно установить кодовую базу в локальном каталоге.

Ответы [ 3 ]

0 голосов
/ 03 марта 2013

Убедитесь, что ваш удаленный интерфейс не может расширять интерфейс java.rmi.Remote

0 голосов
/ 04 августа 2015

Чтобы клиент мог получить доступ к удаленному сервису, у вас должны быть доступны заглушки для клиента. Это можно установить в classpath клиентов (Вы можете включить сгенерированные заглушки в путь сборки проектов).

Свойство java.rmi.server.codebase должно быть установлено в удаленной службе, если у клиента нет заглушек в его classpath. Если это задано, когда клиент вызывает удаленный метод, он загружает заглушку. класс из указанной кодовой базы.

Следующие ссылки могут быть полезны .. https://community.oracle.com/thread/1180559?start=0 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/codebase.html

0 голосов
/ 03 марта 2012

Свойство java.rmi.server.codebase установлено в JVM, которые экспортируют удаленные объекты.Обычно это серверная JVM.

URL-адреса кодовой базы должны ссылаться на каталог или файл JAR, который доступен клиентам этого сервера.Таким образом, это должен быть либо URL-адрес HTTP или FTP, ссылающийся на веб-сервер, доступный клиенту, либо файл: URL, указывающий на локальную файловую систему клиента.

В последнем случае (1)сервер должен был бы знать расположение файлового системного порядка клиента, чтобы правильно установить свойство codebase, что представляет собой сложность конфигурации, и (2) все, что он должен был бы выполнить, - это то, что можно было бы выполнить, включив этот локальный каталог./ JAR-файл в CLASSPATH клиента и полное исключение из него системы кодовых баз.

Другими словами, нет абсолютно никакого смысла в кодовой базе, которая ссылается на локальную файловую систему.

...