將wicket開發的portlet應用發佈到liferay上時,需要注意以下事項:
1、當前案例使用的版本
* wicket的portlet案例,wicket-portlet-examples(基於wicket1.2.1)可以從wicket的SVN上下載;
* liferay:使用的4.1.0的Pro版本
2、將基於wicket的portlet案例, 需要進行以下的操作:
2.1 修改web.xml
2.1.1 增加liferay的監聽器
<listener>
<listener-class>com.liferay.portal.kernel.servlet.PortletContextListener</listener-class>
</listener>
2.1.2 將
<servlet>
<servlet-name>WicketServlet</servlet-name>
<servlet-class>wicket.protocol.http.portlet.WicketPortletServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
替換成
<servlet>
<servlet-name>WicketServlet</servlet-name>
<servlet-class>com.liferay.portal.kernel.servlet.PortletServlet</servlet-class>
<init-param>
<param-name>portlet-class</param-name>
<param-value>wicket.protocol.http.portlet.WicketPortlet</param-value>
</init-param>
<load-on-startup>0</load-on-startup>
</servlet>
2.1.3 將
<servlet-mapping>
<servlet-name>WicketServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
替換成
<servlet-mapping>
<servlet-name>WicketServlet</servlet-name>
<url-pattern>/WicketPortlet/*</url-pattern>
</servlet-mapping>
注意, url-pattern中的"WicketPortlet"是portlet.xml中portlet的名字.
2.2 添加liferay-portlet.xml
可參照標準的liferay的案例配置
2.2 添加liferay-display.xml
可參照標準的liferay的案例配置
3. 有一個點一定需要注意:
在編譯wicket-portlet-examples的時候, 需要加上portlet-api.jar, 但在發佈的時候,要把portlet-api.jar從WEB-INF/lib中刪除,
否則liferay在發佈的時候,會報錯。具體原因不清楚,估計是liferay中已經使用了portlet.jar,與portlet-api.jar有衝突.