Я пытаюсь реализовать собственную схему активации RMI, в которой удаленные активируемые объекты будут размещаться в пользовательском процессе EXE вместо стандартного Java.exe / Javaw.exe.
В RMI «Активируемые» объекты можно сохранять, восстанавливать или запускать по требованию. После регистрации активируемого объекта в реестре RMI и первого запроса RMID запускает дочерний процесс хоста (обычно java.exe / javaw.exe), пропускает две части информации через стандартный ввод дочернего процесса и запрашивает дочерний процесс для запуска метода main специального скрытого класса sun.rmi.server.ActivationGroupInit. Этот класс загружает все остальное, подготавливает процесс к созданию и размещению экземпляров объекта Activatable. Здесь после того, как клиент и сервер общаются через RMI.
Я дошел до определения простого проекта Win32 EXE, написав некоторый код JNI для запуска JVM внутри этого EXE-файла и сумев вызвать основной метод sun.rmi'server.ActivationGroupInit. Этот класс может анализировать стандартный ввод и извлекать все, что ему нужно для создания ActivationGroup.
Однако я сталкиваюсь с некоторыми проблемами, которые в конечном итоге приводят к сбою активации удаленного объекта (с UnknownObjectException
), и я нахожусь в процессе его устранения.
В этот момент я просто хотел сделать шаг назад и спросить, пытался ли кто-нибудь сделать это раньше, и знает, есть ли какие-то ошибки, которые я должен знать на ранней стадии?
Спасибо,
Ранджит