Это всего-лишь небольшой трюк, который кому-то пригодится, а кому-то нет. Речь пойдет о Liferay портале, портлетах и Vaadin приложении.
Как известно, Vaadin позволяет создать как сервлетное так и портлетное приложение. Портлеты же позволяют создавать внутри себя сервлеты. Предлагаемый трюк можно представить себе как Vaadin сервлет приложение врнутри портлета. То есть именно сервлетное приложение.
Что для этого надо:
- Создать портлет используя liferay-sdk;
- В файле liferay-plugin-package.properties указать зависимость для библиотеки vaadin.jar:
portal-dependency-jars=vaadin.jar
- Описать приложения в web.xml:
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5"> <display-name>dashboard</display-name> <context-param> <description>Vaadin production mode</description> <param-name>productionMode</param-name> <param-value>false</param-value> </context-param> <servlet> <display-name>Dashboard</display-name> <servlet-name>dashboardServlet</servlet-name> <servlet-class> com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>org.demo.dashboard.DashboardApplication</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dashboardServlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
- Написать само приложение:
package org.demo.dashboard; import com.vaadin.Application; import com.vaadin.ui.Label; import com.vaadin.ui.Window; public class DashboardApplication extends Application { @Override public void init() { Window mainWindow = new Window("Dashboard Application"); setMainWindow(mainWindow); String AE = "Make everything as simple as possible, but not simpler."; mainWindow.addComponent(new Label(AE)); } }
- Ну и собственно url — {host}/dashboard-portlet, например:
http://localhost:7080/dashboard-portlet
К такому приложению можно обращаться по фиксированной линке, вход на сайт не нужен, это не часть страницы портала, не надо ломать голову со стилями портала и размерами занимаемого пространства, это просто vaadin приложение. Плюс еще в том, что приложение разворачивается внутри портлета, а это дает возможность использовать весь функционал портала, который доступен в портлете.
Как использовать пусть каждый придумает сам, в моем случае это некий dashboard-portlet, который позволяет быстро выполнять рутинные задачи. Как я уже говорил — это всего-лишь небольшой трюк, который кому-то пригодится, а кому-то нет.