2012-02-28 6 views
2

У меня есть существующее приложение для воспроизведения, мне нужно добавить к нему удаленные возможности.Remoting in Play framework

RMI был бы идеальным выбором, так как мне не нужно переписывать оригинальное клиентское приложение. Можно запустить rmi-реестр самостоятельно, но я бы хотел его избежать. В EJB-контейнере запускается rmi-реестр.

Другой вариант - использовать, например, Hessian, но в этом случае мне нужно добавить специальное отображение сервлета в web.xml Возможно ли это сделать в Play?

Или я могу использовать веб-службы, но это больше похоже на перебор в моей ситуации. И снова мне нужно добавить отображение в web.xml для Axis of CXF, например.

Не могли бы вы предложить самый быстрый и простой способ добавления удаленных приложений?

+0

Я хотел бы знать, как правильно использовать Гессиан, и, к сожалению, текущий ответ просто говорит REST, но на самом деле это не вопрос. – Joel

ответ

1

Play предоставляет библиотеку (WS), что делает его очень легко соединить с 3-сторонних приложений с помощью HTTP запросов. Это будет вашим лучшим выбором, если вы можете добавить слой REST к удаленному приложению.

Если нет, вы можете попробовать использовать RMI и запустить игру в контейнере Java EE в качестве военного файла (чтобы получить доступ к контейнеру), но это будет препятствовать нормальному потоку разработки.

Выбор одного или другого может зависеть от усилий, прилагаемых для добавления этого слоя REST. Если это не слишком сложно, я бы одобрил это.

+0

Библиотека третьей части должна подключать игру, а не наоборот. Итак, если я запускаю игру в контейнере, я могу получить доступ к web.xml, например? – user12384512

+0

Да, если вы упакуете его как войну, у вас будет ваш web.xml, хотя, если Play является доступным приложением, лучше создать интерфейс REST в Play (довольно просто) и вызвать его из другого. –

0

Просто используйте услуги JSon REST, у вас есть все, что в игре, чтобы сделать это, больше ничего не требуется

+0

Я знаю о услугах REST json, это не лучший выбор. – user12384512