Допустимо ли ожидать, что на сервере Java Portal Server будут размещаться "стандартные" Java WebApps?

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

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

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

6 ответов

Решение

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

Спецификация JSR 286 (портлет 2.0):

PLT.2.7

Связь с платформой Java 2, Standard и Enterprise Edition

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам