Как использовать RMI с клиентом-апплетом за брандмауэром?

Как я могу использовать RMI с клиентом-апплетом за брандмауэром?

Как я могу использовать RMI с сервером с брандмауэром и клиентом-апплетом с брандмауэром? (Если возможно)

Я знаю, что сервер RMI использует порт 1099 (по умолчанию, но это можно настроить); однако после этого для связи требуется новый сокет на другом случайном порту. Я также знаю, что вы можете настроить прокси-сервер на клиенте для RMI через HTTP-туннелирование, что теоретически должно решить мою проблему. Но я не могу заставить его работать (я пытался установить свойства среды на моем клиенте XP, но Internet Explorer продолжает их игнорировать).

Не могли бы вы подробнее рассказать о том, чего пытаетесь достичь? Вы в основном хотите, чтобы клиент-апплет взаимодействовал с сервером с использованием RMI с межсетевым экраном между ними?

adilei 22.01.2009 18:08
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
7
1
7 175
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Я еще не изучал это всесторонне, но, ища проект, над которым я сейчас работаю, я наткнулся на ЛипеРМИ.

Возможно, вы захотите взглянуть на него, поскольку он ориентирован на использование Интернета и упоминает «затенять клиентов таким образом, чтобы они могли находиться за локальной сетью, маршрутизатором или межсетевым экраном»;

Редактировать:

Вспомнил другую реализацию, с которой я столкнулся некоторое время назад, под названием RMI Doves 1.0: решение проблемы межсетевого экрана Java RMI, вы, возможно, захотите взглянуть и на эту.

Если код сервера находится у вас в руках, вы также можете ограничить RMI для использования заранее определенного порта, предоставив настраиваемый RMISocketFactory, как описано здесь: http://insidecoffe.blogspot.com/2012/02/firewall-friently-rmi-port-fixing.html

(Обратите особое внимание на подсказку, что это может вызвать проблемы, если вы используете JMX параллельно)

на вашем сервере поместите такой код:

RmiInterface stub = (RmiInterface) UnicastRemoteObject.exportObject(rmi, 35400);
LocateRegistry.createRegistry(1099);
Naming.rebind("//192.168.102.128:1099/rmi", stub);

Другие вопросы по теме