Могут ли инстансы JBoss общаться? - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть Java-сервлет, который обрабатывает загрузку файлов, но находится в экземпляре "интрасети" JBoss. Он должен записывать файлы в каталог в экземпляре JBoss «Интернет» (на той же машине). Сервлет Java не может быть перемещен в другой экземпляр. Это с JBoss 4.2 на коробке Solaris.

Есть ли способ для этого? Может ли быть общая папка, которую могут видеть оба экземпляра? Спасибо.

Ответы [ 2 ]

5 голосов
/ 18 ноября 2009

Если целью является выгрузка файлов, вы можете поместить файлы в любой общий общий каталог, который могут видеть оба (со ссылкой на относительное имя файла или в определенное место).

Если у вас есть потенциальная конкуренция за файлы, обычно обрабатывается способ записи файлов во временное имя файла и переименования файла, когда закончите. Переименование является атомарной операцией, в отличие от записи файла.

Я не вижу в вашем вопросе необходимости в реальном общении. Для этого EJB или JMS являются очевидным выбором в JBoss, но если все, что вы делаете - это делитесь файлами, это кажется излишним.

РЕДАКТИРОВАТЬ: я предполагаю, что вы пишете файлы, используя FileOutputStream / FileWriter и тому подобное. В этом случае это простой случай создания каталога или общей папки, в которой оба процесса, выполняющие соответствующие экземпляры JBoss, имеют права. Если вы не знакомы с администрированием и правами файлов Unix, то serverfault.com - подходящее место, чтобы спросить об этих деталях.

1 голос
/ 18 ноября 2009

Таким образом, вы хотите передать файл между двумя компьютерами, подключенными по сети. Ключевое слово здесь - FTP или сетевой диск.

Для этого вы можете использовать FTP (File Transfer Protocol), его название говорит само за себя. Вы можете использовать для этого Java, а если хотите, то я рекомендую Apache Commons Net FTPClient . Однако на целевом компьютере должен быть запущен FTP-сервер. Для этого вы можете использовать под каждым FileZilla .

В качестве альтернативы вы можете на уровне операционной системы сопоставить сетевой диск с целевой машиной на исходной машине и просто записать на нее файл, как если бы он был локальным.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...