頂級的servlet我想創建Liferay的一個servlet是聽一個URL如如何創建Liferay的
http://localhost:8080/my-servlet
我試着將它添加到門戶,但我有網址
http://localhost:8080/my-portlet/my-servlet
我試圖將我的servlet描述添加到ext-web的web.xml中,但沒有運氣。 有什麼辦法可以添加這樣的servlet嗎?
頂級的servlet我想創建Liferay的一個servlet是聽一個URL如如何創建Liferay的
http://localhost:8080/my-servlet
我試着將它添加到門戶,但我有網址
http://localhost:8080/my-portlet/my-servlet
我試圖將我的servlet描述添加到ext-web的web.xml中,但沒有運氣。 有什麼辦法可以添加這樣的servlet嗎?
Liferay的也是「Servlet的」 - 應用 - 而是一個非常,非常大的一個。 Liferay需要一些servlet容器,如tomcat,jetty,jboss等。
但是,您可以簡單地創建servlet項目,並將其直接部署到運行liferay的servlet容器。
編輯:並通過servlet-mapping將其放到web.xml中直接訪問,如「/ *」。
這是真的。有時解決方案非常簡單:portal-service.jar仍然可以使用...... :) – Breiti
按照這個樣本,以瞭解如何在Liferay的插件創建一個servlet路徑:
https://github.com/liferay/liferay-plugins/tree/master/hooks/sample-servlet-filter-hook
如果您要訪問的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);
...
你不能創建web項目並部署在liferay tomcat上嗎? –
這是最高級別的嗎?或者它會以它自己的名字作爲網址的前綴嗎? – Breiti
這將是項目名稱的前綴 –