Допустимо ли ожидать, что сервер Java Portal Server будет размещать «стандартные» Java WebApps? - PullRequest
0 голосов
/ 12 декабря 2008

Было высказано предположение, что это может быть разумным подходом, чтобы минимизировать изменения в существующих конфигурациях сервера, но действительно ли он действителен / поддерживается? Я не смог найти что-то конкретное в любом случае.

На практике с сервером JBoss Portal V2.4.2 возникают некоторые проблемы с загрузкой классов, поэтому такие вещи, как загружаемый пример Stripes или стандартное приложение быстрого запуска Wicket, не запускаются, но я не уверен если проблема существует для конкретного сервера или общего - Кто-нибудь?

Примечание. Речь идет не об отображении / перемещении существующего веб-приложения на портале, просто, если Сервер портала также должен быть действительным AppServer?

Ответы [ 6 ]

2 голосов
/ 12 декабря 2008

JSR 286 (портлет 2.0) spec :

PLT.2.7

Связь с Java 2 Платформа, Стандарт и Предприятие Edition

Portlet API v2.0 основан на Платформа Java, стандартная версия 5.0 и Enterprise Edition v1.4. портлетов Контейнеры должны по крайней мере соответствовать требования, описанные в v 1.4 Спецификация J2EE, для выполнения в среде J2EE.

Поэтому вполне разумно ожидать, что стандартные приложения-серверные приложения будут работать под порталом.

Однако, по определению, портал будет включать больше библиотек в глобальное пространство классов. Добавление библиотек в контейнер всегда сопряжено с риском несовместимости и необходимостью управлять тем, какие классы / ресурсы открыты для вашего приложения и как (загрузка классов приложения в первую очередь и т. Д.). В прошлом у меня были проблемы с библиотеками третьей части, чьи зависимости конфликтовали с версией, поставляемой с порталом. Я не ожидал бы, что управление зависимостями станет легче.

Пиши один раз, проверяй везде, как говорится.

0 голосов
/ 18 июля 2009

Ответ таков: да, это действительно так, , но в определенных версиях JBoss Portal V2.4. * Возникают проблемы с загрузчиком классов, так что только более простые веб-приложения будут работать правильно.

0 голосов
/ 12 декабря 2008

Хм ... но может ли он / исключительно / содержать сервлеты, или другими словами, должно ли приложение иметь хотя бы 1 портлет? (У меня нет / я хочу обслуживать портлет, только сервлет, но у меня есть только сервер портала!)

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

Я написал приложение, совместимое с JSR-168, с пустым портлетом и сервлетом, который использовался для получения некоторых данных о ценах на акции в формате XML. В течение нескольких месяцев все, что когда-либо вызывалось, было сервлетом, портлет никогда не был виден где-либо на сайте. Позже я добавил портлет, предоставляющий некоторые дополнительные данные из XML-канала.

0 голосов
/ 12 декабря 2008

Я смешал сервлеты и портлеты в одном веб-приложении, используя JBoss Portal, BEA WebLogic Portal и Apache Jetspeed 2.

Однако преобразование сервлета в портлет может быть затруднено. Использование мостовых технологий, таких как Portals Bridges , действительно существует, но мне посчастливилось избежать такого преобразования, и у меня нет прямого опыта, кроме как играть с учебными пособиями.

0 голосов
/ 12 декабря 2008

Исходя из моего опыта, это верное предложение. Приложения с портлетами часто также являются веб-приложениями (они могут содержать сервлет, например, чтобы разрешить доступ к логике приложения также по ссылкам, отображаемым в одном из портлетов), поэтому они содержат как portlet.xml, так и web.xml и нуждаются в классах j2ee и jsr168. классы. Стандарт WSRP также содержит тип ссылки на ресурс, который должен представлять собой обычный сервер приложений для удаленного сервера.

Сервер портала Websphere также является сервером приложений.

0 голосов
/ 12 декабря 2008

Я предполагаю, что вопрос состоит в том, может ли стандартное веб-приложение отображаться в виде портлета из контейнера портлета. Это невозможно. Портлеты должны быть основаны на классе GenericPortlet и иметь специальные дескрипторы развертывания. Существует стандарт JSR-168, который определяет требования к порталу. Спецификация JSR-286 находится в пути.

Единственное, что вы можете сделать, - это создать портлет, который будет обслуживать ваше существующее приложение через iframe, но это, конечно, ужасно.

Существует бесплатная книга для портлетов под названием " Портлеты и порталы Apache ", которая может быть полезна. Обратитесь также к спецификации. Это блог интересно.

...