передать java.lang.reflect.Proxy по сети - PullRequest
1 голос
/ 07 мая 2010

Есть ли удобный способ передачи объекта , включая его код (класс), по сети (не только данные экземпляра)?

Не спрашивайте меня, почему я хочу это сделать. Это в назначении. Я несколько раз спрашивал, действительно ли они имели в виду, и они не перефразировали свой ответ, поэтому я думаю, что они действительно хотят, чтобы мы передавали код (а не только полевые данные) по сети. Честно говоря, я понятия не имею, зачем нам нужен прокси-сервер в этом назначении, просто написание простого класса сделает IMO. Назначение говорит, что мы должны создать экземпляр прокси на сервере и передать его клиенту (и да, они говорят о java.lang.reflect.Proxy, они называют этот класс). Поскольку нет никакого файла класса для прокси, я не могу развернуть это. Я думаю, мне нужно было бы как-то прочитать байт-код сгенерированного прокси, передать его клиенту и затем загрузить его. Это абсолютно бессмысленно, но, похоже, они хотят, чтобы мы это делали. Я не понимаю, почему.

1 Ответ

1 голос
/ 07 мая 2010

Это базовое ценностное предложение проекта Apache River (ранее известного как Jini, когда его запускал Sun).

Вы помещаете код, необходимый для удаленного запуска, вjar на http-сервере "codebase" и опубликуйте свой прокси на сервере поиска.River аннотирует этот прокси (который является сериализованным экземпляром) URL-адресами кодовой базы.Когда клиент выбирает этот прокси-сервер с сервера поиска и создает его экземпляр, файлы jar кодовой базы используются в изолированном загрузчике классов.Обычно создаются «умные прокси», которые загружают кучу кода для запуска на клиенте для управления связью с исходной службой, или вы можете использовать более простой прокси, чтобы просто выполнять вызовы RMI.

Технология инкапсулированаПо реке сложно, но глубоко.

...