Контейнер портлетов, такой как Плутон или Jetspeed на движке приложений Google? - PullRequest
7 голосов
/ 08 апреля 2010

Я пытаюсь создать что-то вроде "сервера портлетов" на движке приложений Google. (как с открытым исходным кодом)

Я бы хотел использовать стандарты JSR168 / 286, но я думаю, что ограничения движок приложения сделает это где-то между хитрым и невозможным.

Кто-нибудь пытался запустить jetspeed или приложение, которое использует Плутон для внутреннего использования? на Google App Engine?

Основываясь на моих текущих знаниях портлетов и механизма приложений Google, я предвидя эти проблемы:

Файл войны с портлетами с точки зрения развертывания более или менее полное веб-приложение (да, я знаю, что оно не работает без портала сервер). Файл war может содержать собственный web.xml и т. Д. Это делает развертывание на движке приложений довольно сложным, потому что приложения не видны друг другу, поэтому все портлеты, содержащие архивы, должны быть включается в файл war развернутого «сервера портала на основе механизма приложений».

"Портлеты" (по крайней мере, в liferay) запускаются как постоянный сервлет процессы, основанные на их portlet.xmls и web.xmls, который находится в одном месте для каждый загруженный архив портлетов. Я думаю, что это может быть проблематично в движок приложения, потому что все в одном большом «веб-приложении», поэтому может быть сложно получить доступ к portlet.xmls из каждого архива.

На мой взгляд, это предотвращает 100% совместимость.

Здесь есть кто-нибудь, кто имеет опыт работы с комбинацией портлетов и движок приложения?

Как вы думаете, возможно ли изменить jetspeed, pluto или любой другой портлет-контейнер для запуска это на движке приложения?

1 Ответ

2 голосов
/ 09 апреля 2010

Я кратко рассмотрел это - ваша самая большая проблема заключается в том, что спецификация Portlet основана на некоторых ключевых битах спецификации сервлета, но переопределяет их - в частности, обычно требуется поддержка межконтекстных вызовов.

Хотя можно создать одно веб-приложение, содержащее несколько портлетов и контейнер сервлетов (часто это делается для административных портлетов или, в случае Liferay, для большей части их стека), это нелегко.

В действительности, если посмотреть на работу с типами порталов в AppEngine, я бы гораздо более внимательно посмотрел на размещение виджетов OpenSocial (если вы действительно хотите стандарты), возможно, работающих в Shindig или размещенных извне. Это также может обеспечить совместимость с JSR-168, поскольку существует несколько (не очень хороших) мостовых портлетов для размещения виджетов, и это не сложный адаптер для записи.

...