Forums

Home » Liferay Portal » Deutsch

Combination View Flat View Tree View
Threads [ Previous | Next ]
toggle
Günther Neckritz
Portlet deploy/Scheduler problem
December 30, 2012 7:26 AM
Answer

Günther Neckritz

Rank: New Member

Posts: 1

Join Date: December 30, 2012

Recent Posts

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
February 11, 2013 11:57 PM
Answer

Armin Cyrus Dahncke

LIFERAY STAFF

Rank: Junior Member

Posts: 80

Join Date: August 12, 2008

Recent Posts

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