2014-01-06 38 views
7

頂級的servlet我想創建Liferay的一個servlet是聽一個URL如如何創建Liferay的

http://localhost:8080/my-servlet 

我試着將它添加到門戶,但我有網址

http://localhost:8080/my-portlet/my-servlet 

我試圖將我的servlet描述添加到ext-web的web.xml中,但沒有運氣。 有什麼辦法可以添加這樣的servlet嗎?

+0

你不能創建web項目並部署在liferay tomcat上嗎? –

+0

這是最高級別的嗎?或者它會以它自己的名字作爲網址的前綴嗎? – Breiti

+0

這將是項目名稱的前綴 –

回答

5

Liferay的也是「Servlet的」 - 應用 - 而是一個非常,非常大的一個。 Liferay需要一些servlet容器,如tomcat,jetty,jboss等。

但是,您可以簡單地創建servlet項目,並將其直接部署到運行liferay的servlet容器。

編輯:並通過servlet-mapping將其放到web.xml中直接訪問,如「/ *」。

+1

這是真的。有時解決方案非常簡單:portal-service.jar仍然可以使用...... :) – Breiti

10

如果您要訪問的Liferay服務API,你可以考慮使用PortalDelegateServlet:添加以下到你的web.xml:

<servlet> 
    <servlet-name>myServlet</servlet-name> 
    <servlet-class>com.liferay.portal.kernel.servlet.PortalDelegateServlet</servlet-class> 
    <init-param> 
     <param-name>servlet-class</param-name> 
     <param-value>org.example.MyServlet</param-value> 
    </init-param> 
    <init-param> 
     <param-name>sub-context</param-name> 
     <param-value>myservlet</param-value> 
    </init-param> 
</servlet> 

會讓你訪問過的servelt

http://example.org/delegate/myservlet

在您的servlet類中,然後執行如下操作:提取登錄用戶並檢查權限:

package org.example; 

public class MyServlet extends HttpServlet { 
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    User user = PortalUtil.getUser(request); 
    PermissionChecker permissionChecker = PermissionCheckerFactoryUtil.create(user); 
    ... 
+0

聽起來太棒了!感謝提示 – Breiti

+0

如何在訪問url時防止「找不到頁面」? – cheloncio

相關問題