Fóruns

Início » Liferay Portal » Deutsch

Visualização combinada Visão plana Exibição em árvore
Tópicos [ Anterior | Próximo ]
toggle
Günther Neckritz
Portlet deploy/Scheduler problem
30 de Dezembro de 2012 07:26
Resposta

Günther Neckritz

Ranking: New Member

Mensagens: 1

Data de entrada: 30 de Dezembro de 2012

Mensagens recentes

Hallo zusammen.
Ich bin noch ziemlich frisch in der Liferay-Materie und wühle mich gerade so durch.
Momentan versuche ich, ein Slide/-Diashow-Portlet zu schreiben (mit Vaadin). Soweit, so schön, ich bekomme meine Bilder geladen und auch angezeigt. Nun möchte ich allerdings einen Timer integrieren, der mir in regelmäßigen Abständen ein neues Bild anzeigt. Der Scheduler-Mechanismus in Liferay scheint ja eigentlich genau das richtige für sowas zu sein, aber irgendwie bekomme ich es nicht ans Laufen. Nach vielem googeln und dem Lesen vieler Beispiele sieht das Ganze bei mir jetzt folgendermaßen aus:
Mein Vaadin-Portlet:
1
2public class TeasershowApplication extends Application implements MessageListener
3{
4...
5public void receive(Message arg0) throws MessageListenerException
6{
7    System.out.println("Message received"); //Zum debuggen, reagiert momentan nicht
8}

Die portlet-xml:
 1
 2<?xml version="1.0" encoding="UTF-8" standalone="no"?>
 3<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd">
 4
 5    <portlet>
 6        <portlet-name>TeasershowApplicationPortlet</portlet-name>
 7        <display-name>TeaserShow</display-name>
 8       
 9        <portlet-class>com.vaadin.terminal.gwt.server.ApplicationPortlet2</portlet-class>
10        <init-param>
11            <name>application</name>
12            <value>de.playermanager.teasershow.TeasershowApplication</value>
13        </init-param>
14       
15        <!--
16          To enable displaying multiple Vaadin portlets on a page,
17          they should all use the same widgetset. In that case, the
18          widgetset can be configured on the portal level (parameter
19          vaadin.widgetset) or here for each portlet.
20        -->
21        <!--
22        <init-param>
23            <name>widgetset</name>
24            <value>com.vaadin.portal.gwt.PortalDefaultWidgetSet</value>
25        </init-param>
26        -->
27       
28        <!-- Supported portlet modes and content types. -->
29        <supports>
30            <mime-type>text/html</mime-type>
31            <portlet-mode>view</portlet-mode>
32            <!-- <portlet-mode>edit</portlet-mode> -->
33            <!-- <portlet-mode>help</portlet-mode> -->
34        </supports>
35       
36        <!-- Not always required but Liferay uses these. -->
37        <portlet-info>
38            <title>Teaser-Show</title>
39            <short-title>Teaser-Show</short-title>
40        </portlet-info>
41    </portlet>
42</portlet-app>

liferay-display.xml:
1
2<?xml version="1.0" encoding="UTF-8" standalone="no"?>
3<!DOCTYPE display PUBLIC "-//Liferay//DTD Display 4.0.0//EN" "http://www.liferay.com/dtd/liferay-display_4_0_0.dtd">
4<display>
5    <category name="Vaadin">
6        <portlet id="TeasershowApplicationPortlet"/>
7    </category>
8</display>

web.xml:
 1
 2<?xml version="1.0" encoding="UTF-8"?>
 3<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 4    <display-name>TeaserShow</display-name>
 5    <context-param>
 6        <description>
 7        Vaadin production mode</description>
 8        <param-name>productionMode</param-name>
 9        <param-value>false</param-value>
10    </context-param>
11    <servlet>
12        <servlet-name>TeasershowApplicationPortlet</servlet-name>
13        <servlet-class>com.vaadin.terminal.gwt.server.ApplicationServlet</servlet-class>
14        <init-param>
15            <description>
16            Vaadin application class to start</description>
17            <param-name>application</param-name>
18            <param-value>de.playermanager.teasershow.TeasershowApplication</param-value>
19        </init-param>
20    </servlet>
21    <servlet-mapping>
22        <servlet-name>TeasershowApplicationPortlet</servlet-name>
23        <url-pattern>/TeasershowApplicationServlet/*</url-pattern>
24    </servlet-mapping>
25    <servlet-mapping>
26        <servlet-name>TeasershowApplicationPortlet</servlet-name>
27        <url-pattern>/VAADIN/*</url-pattern>
28    </servlet-mapping>
29    <welcome-file-list>
30        <welcome-file>index.html</welcome-file>
31        <welcome-file>index.htm</welcome-file>
32        <welcome-file>index.jsp</welcome-file>
33        <welcome-file>default.html</welcome-file>
34        <welcome-file>default.htm</welcome-file>
35        <welcome-file>default.jsp</welcome-file>
36    </welcome-file-list>
37</web-app>

Der liferay-portlet.xml habe ich folgendes hinzugefügt:
 1
 2<portlet>
 3        <portlet-name>TeasershowApplicationPortlet</portlet-name>
 4        <scheduler-entry>
 5            <scheduler-event-listener-class>de.playermanager.teasershow.TeasershowApplication</scheduler-event-listener-class>
 6            <trigger>
 7                <simple>
 8                    <simple-trigger-value>45</simple-trigger-value>
 9                    <time-unit>second</time-unit>
10                </simple>
11            </trigger>
12        </scheduler-entry>
13    </portlet>


Was übersehe ich hier bzw. was mache ich falsch? Vielen Dank schon mal im Voraus.
Armin Cyrus Dahncke
RE: Portlet deploy/Scheduler problem
11 de Fevereiro de 2013 23:57
Resposta

Armin Cyrus Dahncke

LIFERAY STAFF

Ranking: Junior Member

Mensagens: 80

Data de entrada: 12 de Agosto de 2008

Mensagens recentes

Hallo Günther,

der Liferay Scheduler ist eigentlich für serverseitige (CRON)Jobs gedacht, in meinem Fall zum Beispiel zum aufräumen in der DB von alten Laufzeitdaten, zum importieren von regelmäßig bereitgestellten XML Dateien usw.. Wenn Du in Vaadin etwas im Browser nachladen möchtest schau dir mal "Poll" an bei Vaadin. Damit kann man z.B. eine versteckte Progressbar benutzen, damit der Browser vom server neue Daten abholt.

https://vaadin.com/web/matti/blog/-/blogs/1072952