Решение проблемы с ошибкой установки WAR (Websphere Portal 6.0)? - PullRequest
0 голосов
/ 07 мая 2010

У меня есть приложение Websphere Portal, содержащее несколько портлетов, над которыми я сейчас работаю над некоторыми изменениями.

Неделю назад файл WAR, созданный Rational Application Developer, мог быть установлен на сервере портала без проблем.

Вчера я сделал несколько, казалось бы, незначительных изменений в двух файлах JSP и связанных с ними файлах Java "pagecode", и при попытке обновить WAR-файл на сервере (используя веб-интерфейс администрирования портала) теперь выдается сообщение об ошибке. Загрузка WAR работает, и система показывает правильный список портлетов в файле WAR, но нажатие «Готово» дает мне страницу с сообщением об ошибке «EJPAQ1319E: Невозможно установить выбранный файл WAR. Подробно».
При нажатии на ссылку «Просмотр сведений» открывается страница со следующим текстом:

EJPAQ1319E: Cannot install the selected WAR file.
com.ibm.portal.WpsException: EJPAQ1319E: Cannot install the selected WAR file.

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.installPortletFromFormFile(DoInstallWebModuleAction.java:633)

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.doExecute(DoInstallWebModuleAction.java:159)

at com.ibm.wps.portlets.adminstruts.actions.BaseAction.execute(BaseAction.java:64)

at com.ibm.wps.portlets.struts.WpsRequestProcessor.processActionPerform(WpsRequestProcessor.java:338)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

at com.ibm.wps.portlets.struts.WpsStrutsPortlet.processActionPerformed(WpsStrutsPortlet.java:1947)

at com.ibm.wps.portlets.struts.WpsStrutsPortlet.actionPerformed(WpsStrutsPortlet.java:1637)

at com.ibm.wps.portlets.adminstruts.WpsAdminStrutsPortlet.actionPerformed(WpsAdminStrutsPortlet.java:261)

at com.ibm.wps.pe.pc.legacy.SPIPortletInterceptorImpl.handleEvents(SPIPortletInterceptorImpl.java:323)


EJPPE0020E: It is not allowed to install a JSR 168 compliant over a 4.x portlet application.
com.ibm.wps.command.applications.AppWarFileException: EJPPE0020E: It is not allowed to install a JSR 168 compliant over a 4.x portlet application.

WrappedException is: com.ibm.wps.pe.mgr.exceptions.InvalidWarFileException: EJPPE0020E: It is not allowed to install a JSR 168 compliant over a 4.x portlet application.

at com.ibm.wps.command.applications.AbstractApplicationsCommand.throwAppMgrException(AbstractApplicationsCommand.java:492)

at com.ibm.wps.command.applications.UpdatePortletApplicationCommand.execute(UpdatePortletApplicationCommand.java:165)

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.installPortletFromFormFile(DoInstallWebModuleAction.java:510)

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.doExecute(DoInstallWebModuleAction.java:159)

at com.ibm.wps.portlets.adminstruts.actions.BaseAction.execute(BaseAction.java:64)

at com.ibm.wps.portlets.struts.WpsRequestProcessor.processActionPerform(WpsRequestProcessor.java:338)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

at com.ibm.wps.portlets.struts.WpsStrutsPortlet.processActionPerformed(WpsStrutsPortlet.java:1947)


EJPPE0020E: It is not allowed to install a JSR 168 compliant over a 4.x portlet application.
com.ibm.wps.pe.mgr.exceptions.InvalidWarFileException: EJPPE0020E: It is not allowed to install a JSR 168 compliant over a 4.x portlet application.

at com.ibm.wps.pe.mgr.AbstractApplicationManagerImpl.updateWebModule(AbstractApplicationManagerImpl.java:1338)

at com.ibm.wps.pe.mgr.AbstractApplicationManagerImpl.updateWebModule(AbstractApplicationManagerImpl.java:1255)

at com.ibm.wps.command.applications.UpdatePortletApplicationCommand.execute(UpdatePortletApplicationCommand.java:135)

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.installPortletFromFormFile(DoInstallWebModuleAction.java:510)

at com.ibm.wps.portlets.portletmanager.actions.DoInstallWebModuleAction.doExecute(DoInstallWebModuleAction.java:159)

at com.ibm.wps.portlets.adminstruts.actions.BaseAction.execute(BaseAction.java:64)

at com.ibm.wps.portlets.struts.WpsRequestProcessor.processActionPerform(WpsRequestProcessor.java:338)

at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)

at com.ibm.wps.portlets.struts.WpsStrutsPortlet.processActionPerformed(WpsStrutsPortlet.java:1947)

Все, что мне удалось найти об этой ошибке через Google, это следующее в документации Websphere Portal:

EJPPE0020E: Не разрешается устанавливать {0} поверх приложения с портлетами {1}.
Объяснение: Приложение с портлетами, содержащее устаревшие портлеты, можно обновить только с помощью другого приложения с портлетами, которое содержит устаревшие портлеты. То же самое верно для стандартных приложений с портлетами.
Действия пользователя: Измените файл portlet.xml приложения так, чтобы он соответствовал исходному типу API, стандартному или устаревшему, и повторите попытку.

Однако файл "portlet.xml" не изменился примерно через месяц, и за это время я сделал несколько обновлений WAR для этого приложения без проблем. Кажется, проблема вызвана изменениями кода, которые я сделал вчера, но я понятия не имею, почему несколько строк кода могут это сделать.

Есть идеи?

1 Ответ

2 голосов
/ 07 мая 2010

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

...