此異常可以在自己的頁面上有一個不匹配的組件名稱引起的。當portlet應用程序部署一個名稱這種情況經常發生,但隨後的頁面片段引用其他名稱,例如,您的網頁上您有:
<fragment id="1234" type="portlet" name="myApp::myPortlet">
,當您部署WAR文件,它被命名爲示例myApp-1.0-SNAPSHOT.war
該片段的name屬性應具有值「$ {portlet.war.name} :: $ {portlet.name}。第一部分($ {portlet.war.name} )是portlet war文件的名稱,減去.war。第二部分來自portlet.xml文件中標記的值
您可以重命名您的war文件或cha更改頁面定義以包含版本。我不建議將版本號放在片段中,因爲它可以改變。
第三種解決方案是通過在Jetspeed容器servlet上設置一個名爲contextName的初始參數來實際更改web.xml中的portlet應用程序的名稱。在其設置爲「myApp」的示例中:
<servlet>
<description>MVC Servlet for Jetspeed Portlet Applications</description>
<display-name>Jetspeed Container</display-name>
<servlet-name>JetspeedContainer</servlet-name>
<servlet-class>
org.apache.jetspeed.container.JetspeedContainerServlet</servlet-class>
<init-param>
<param-name>contextName</param-name>
<param-value>myApp</param-value>
</init-param>
<load-on-startup>100</load-on-startup>
</servlet>