Foren

Home » Liferay Portal » Deutsch

Kombinierte Ansicht Flache Ansicht Baumansicht
Threads [ Zurück | Nächste ]
toggle
Günther Neckritz
Portlet deploy/Scheduler problem
30. Dezember 2012 07:26
Antwort

Günther Neckritz

Rang: New Member

Nachrichten: 1

Eintrittsdatum: 30. Dezember 2012

Neue Beiträge

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. Februar 2013 23:57
Antwort

Armin Cyrus Dahncke

LIFERAY STAFF

Rang: Junior Member

Nachrichten: 80

Eintrittsdatum: 12. August 2008

Neue Beiträge

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