编写WAR安装错误的解决方案(Websphere Portal 6.0)?

时间:2010-05-07 02:23:47

标签: java jsp portlet websphere-portal

我有一个Websphere Portal应用程序,其中包含几个我正在进行一些更改的portlet。

一周前,Rational Application Developer生成的WAR文件可以毫无问题地安装在Portal服务器上。

昨天我对两个JSP文件及其相关的“页面代码”Java文件进行了一些看似微小的更改,并且尝试更新服务器上的WAR(使用门户网站管理Web界面)现在会生成错误消息。
WAR上传工作,系统显示WAR文件中正确的portlet列表,但单击“完成”会给我一个页面,其中包含错误消息“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)

我在Websphere Portal文档中通过Google找到的所有错误信息如下:

  

EJPPE0020E:不允许在{1} portlet应用程序上安装{0}。
  说明:包含旧portlet的portlet应用程序只能使用包含旧portlet的其他portlet应用程序进行更新。标准portlet应用程序也是如此   用户响应:修改应用程序的portlet.xml,使其与原始API类型,标准版或旧版相匹配,然后重试。

但是,“portlet.xml”文件在大约一个月内没有改变,我在这段时间内为这个应用程序做了几次WAR更新,没有任何问题。问题似乎是由我昨天做的代码更改引起的,但我不知道为什么几行代码会这样做。

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

实际原因对我来说是一个愚蠢的错误,与代码更改没有任何关系。当使用Portal管理界面更新WAR时,我选择了错误的现有WAR进行更新,因此我尝试用完全不同的东西更新一个应用程序。