Avatar billede catch22 Nybegynder
29. juni 2006 - 01:15 Der er 20 kommentarer og
1 løsning

Java portlet "Portlet is temporarily unavailable"

Jeg har brugt evigheder på at få en simpel "hello world" portlet op at køre på liferay. Da liferay er lavet i ægte open source stil er dokumentationen praktisk talt ikke eksisterende og den der findes er enten direkte forkert eller i bedste fald uklar.

Klassen (som er tyvstjålet) ser således ud:

<---------kode start------------>

package net.wehrens.portlets;

import javax.portlet.GenericPortlet;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;
import java.io.PrintWriter;
import java.io.IOException;

/** * a simple HelloWorld Portlet */
public class HelloWorld extends GenericPortlet {

public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException {
    response.setContentType("text/html");
    PrintWriter out = response.getWriter();
    out.println("<h1>Hello Sick Twisted World</h1>");
    }
}

<--------kode slut---------->

For at "hot deploy" portlet'en bruger jeg portlet-deployer 3.6.0 ant script fra liferay selv, og det kører også uden fejlmeddelser. Jeg tilføjer portlet'en i liferays portlet.xml og kan også finde den under "add content" menuen. Problemet er at når portlet'en skal vises indeholder den kun:

"Portlet is temporarily unavailable."

Liferay's log fil (catalina.out) viser:

22:29:04,890 ERROR [portal-web.docroot.html.common.error.jsp] net.wehrens.portlets.HelloWorld
javax.portlet.UnavailableException: net.wehrens.portlets.HelloWorld
    at com.liferay.portal.model.Portlet.init(Portlet.java:1351)
    at com.liferay.portal.model.Portlet.init(Portlet.java:1326)
    at com.liferay.portlet.PortletInstanceFactory._create(PortletInstanceFactory.java:99)
    at com.liferay.portlet.PortletInstanceFactory.create(PortletInstanceFactory.java:49)

....osv...

Jeg er ved at køre fuldstændig fast i det her portlet cirkus. Er der nogen forslag ? Andet info der skal bruges for at hjælpe ?
Avatar billede arne_v Ekspert
29. juni 2006 - 01:23 #1
hvordan ser din portlet.xml ud ?
Avatar billede catch22 Nybegynder
29. juni 2006 - 01:50 #2
Det er noget af en bunke, du skal ned til nummer 92....


<?xml version="1.0"?>



<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">

    <portlet>

        <portlet-name>1</portlet-name>

        <display-name>Mail</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/mail/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/mail/view_folder</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>html-format</name>

                <value>true</value>

            </preference>

            <preference>

                <name>forward-address</name>

            </preference>

            <preference>

                <name>signature</name>

            </preference>

            <preference>

                <name>vacation-message</name>

            </preference>

            <preference>

                <name>col-order</name>

                <value>fsdz</value>

            </preference>

            <preference>

                <name>order-by-col</name>

                <value>d</value>

            </preference>

            <preference>

                <name>order-by-type</name>

                <value>desc</value>

            </preference>

            <preference>

                <name>messages-per-portlet</name>

                <value>5</value>

            </preference>

            <preference>

                <name>messages-per-page</name>

                <value>20</value>

            </preference>

            <preference>

                <name>message-headers</name>

                <value>1</value>

            </preference>

            <preference>

                <name>message-recipients-limit</name>

                <value>10</value>

            </preference>

            <preference>

                <name>include-original</name>

                <value>true</value>

            </preference>

            <preference>

                <name>original-text-indicator</name>

                <value>0</value>

            </preference>

            <preference>

                <name>reply-to-address</name>

            </preference>

            <preference>

                <name>new-mail-notification</name>

                <value>2</value>

            </preference>

            <preference>

                <name>folder-names</name>

            </preference>

            <preference>

                <name>blocked</name>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>2</portlet-name>

        <display-name>My Account</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/my_account/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

    </portlet>

    <portlet>

        <portlet-name>3</portlet-name>

        <display-name>Search</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/search/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>4</portlet-name>

        <display-name>Weather</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/weather/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/weather/view</value>

        </init-param>

        <expiration-cache>300</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>zips</name>

                <value>90210</value>

                <value>Chicago</value>

                <value>Frankfurt/Main</value>

                <value>Rome, Italy</value>

            </preference>

            <preference>

                <name>fahrenheit</name>

                <value>true</value>

            </preference>

            <preferences-validator>com.liferay.portlet.weather.WeatherPreferencesValidator</preferences-validator>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>5</portlet-name>

        <display-name>News</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/news/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/news/view</value>

        </init-param>

        <expiration-cache>300</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>sel-feeds</name>

                <value>c=Top%20stories</value>

                <value>c=International%20relations%20news</value>

            </preference>

            <preference>

                <name>articles-per-news</name>

                <value>4</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>6</portlet-name>

        <display-name>Reverend Fun</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/reverend_fun/view.jsp</value>

        </init-param>

        <expiration-cache>300</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>7</portlet-name>

        <display-name>Bible Gateway</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/bible_gateway/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>8</portlet-name>

        <display-name>Calendar</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/calendar/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>9</portlet-name>

        <display-name>Admin</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/admin/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>administrator</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>10</portlet-name>

        <display-name>Address Book</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/address_book/view_all</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>11</portlet-name>

        <display-name>Directory</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/directory/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>12</portlet-name>

        <display-name>Stocks</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/stocks/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/stocks/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>symbols</name>

                <value>MOT</value>

                <value>NOK</value>

                <value>SBUX</value>

                <value>YHOO</value>

            </preference>

            <preferences-validator>com.liferay.portlet.stocks.StocksPreferencesValidator</preferences-validator>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>13</portlet-name>

        <display-name>Calculator</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/calculator/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>14</portlet-name>

        <display-name>Games</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/games/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>hangman-word-list</name>

                <value>almighty, awesome, believe, blessing, calling, canon, charity, chosen, confession, desire, election, enterprise, eternal, faith, for life, forever, grace, heaven, hope, innocent, justified, king, lamb, lord, love, magnificent, liferay, mortal, open source, perfect love, redeemed, righteous, saved, shepherd, solidarity, steward, testament, testimony, tulip</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>15</portlet-name>

        <display-name>Journal</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/journal/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>16</portlet-name>

        <display-name>Currency Converter</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/currency_converter/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/currency_converter/view</value>

        </init-param>

        <expiration-cache>300</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>symbols</name>

                <value>GBP</value>

                <value>CNY</value>

                <value>EUR</value>

                <value>JPY</value>

                <value>USD</value>

            </preference>

            <preferences-validator>com.liferay.portlet.currencyconverter.CurrencyPreferencesValidator</preferences-validator>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>17</portlet-name>

        <display-name>CSZ Search</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/csz_search/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>18</portlet-name>

        <display-name>Maps</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/maps/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>19</portlet-name>

        <display-name>Message Boards</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/message_boards/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>20</portlet-name>

        <display-name>Document Library</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/document_library/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>21</portlet-name>

        <display-name>Random Bible Verse</display-name>

        <portlet-class>com.liferay.portlet.randombibleverse.RBVPortlet</portlet-class>

        <init-param>

            <name>edit-jsp</name>

            <value>/portlet/random_bible_verse/edit.jsp</value>

        </init-param>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/random_bible_verse/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>language</name>

                <value>en</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>22</portlet-name>

        <display-name>Instant Messenger</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/instant_messenger/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>23</portlet-name>

        <display-name>Dictionary</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/dictionary/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>24</portlet-name>

        <display-name>SMS</display-name>

        <portlet-class>com.liferay.portlet.sms.SMSPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/sms/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>25</portlet-name>

        <display-name>Polls</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/polls/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>26</portlet-name>

        <display-name>Translator</display-name>

        <portlet-class>com.liferay.portlet.translator.TranslatorPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/translator/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>27</portlet-name>

        <display-name>Unit Converter</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/unit_converter/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>28</portlet-name>

        <display-name>Bookmarks</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/bookmarks/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>29</portlet-name>

        <display-name>Communities</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/communities/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>30</portlet-name>

        <display-name>Network</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/network/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>31</portlet-name>

        <display-name>Image Gallery</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/image_gallery/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>32</portlet-name>

        <display-name>Today in Christian History</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/today_in_christian_history/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>33</portlet-name>

        <display-name>Blogs</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/blogs/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>34</portlet-name>

        <display-name>Shopping</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/shopping/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>35</portlet-name>

        <display-name>Google</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/google/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/google/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>safe-search</name>

                <value>false</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>36</portlet-name>

        <display-name>Wiki</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/wiki/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>37</portlet-name>

        <display-name>Words</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/words/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>38</portlet-name>

        <display-name>Theme Gallery</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/theme_gallery/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>39</portlet-name>

        <display-name>RSS</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/rss/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/rss/view</value>

        </init-param>

        <expiration-cache>300</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>urls</name>

                <value>http://www.liferay.com/cms/servlet/news-rss-feed?mimeType=application/rss+xml</value>

                <value>http://rss.news.yahoo.com/rss/tech</value>

                <value>http://csmonitor.com/rss/scitech.rss</value>

                <value>http://partners.userland.com/nytRss/technology.xml</value>

            </preference>

            <preference>

                <name>items-per-channel</name>

                <value>2</value>

            </preference>

            <preferences-validator>com.liferay.portlet.rss.RSSPreferencesValidator</preferences-validator>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>40</portlet-name>

        <display-name>Location Admin</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/location_admin/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>administrator</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>42</portlet-name>

        <display-name>Pipeline</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/pipeline/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>43</portlet-name>

        <display-name>Top Opportunities</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/top_opportunities/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>45</portlet-name>

        <display-name>Westminster Catechism</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/westminster_catechism/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <description xml:lang="EN">Portlet reusing com.liferay.portlet.iframe.IFramePortlet with set preferences</description>

        <portlet-name>46</portlet-name>

        <display-name>Gospel for Asia</display-name>

        <portlet-class>com.liferay.portlet.iframe.IFramePortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>src</name>

                <value>http://www.gfa.org</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>47</portlet-name>

        <display-name>Hello World</display-name>

        <portlet-class>com.liferay.portlet.helloworld.HelloWorldPortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <portlet-info>

            <title>Hello World</title>

            <short-title>Hello World</short-title>

            <keywords>Hello World</keywords>

        </portlet-info>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>48</portlet-name>

        <display-name>IFrame</display-name>

        <portlet-class>com.liferay.portlet.iframe.IFramePortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>auth</name>

                <value>false</value>

            </preference>

            <preference>

                <name>auth-type</name>

                <value>basic</value>

            </preference>

            <preference>

                <name>form-method</name>

                <value>post</value>

            </preference>

            <preference>

                <name>user-name</name>

                <value></value>

            </preference>

            <preference>

                <name>password</name>

                <value></value>

            </preference>

            <preference>

                <name>hidden-variables</name>

                <value>var1=hello;var2=world</value>

            </preference>

            <preference>

                <name>src</name>

                <value></value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>49</portlet-name>

        <display-name>My Places</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/my_places/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>50</portlet-name>

        <display-name>Hello Velocity</display-name>

        <portlet-class>com.liferay.portlet.VelocityPortlet</portlet-class>

        <init-param>

            <name>view-template</name>

            <value>/portlet/hello_velocity/view.vm</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <portlet-info>

            <title>Hello Velocity</title>

            <short-title>Hello Velocity</short-title>

            <keywords>Hello Velocity</keywords>

        </portlet-info>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <description xml:lang="EN">Portlet reusing com.liferay.portlet.iframe.IFramePortlet with an extended com.liferay.portlet.iframe.action.ViewAction</description>

        <portlet-name>51</portlet-name>

        <display-name>Global Prayer Digest</display-name>

        <portlet-class>com.liferay.portlet.iframe.IFramePortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/global_prayer_digest/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>src</name>

                <value>http://www.global-prayer-digest.org/dailydata/getdaily.asp</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>52</portlet-name>

        <display-name>Chat</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/chat/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>53</portlet-name>

        <display-name>Flash</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/flash/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>54</portlet-name>

        <display-name>Wiki Display</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/wiki_display/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>56</portlet-name>

        <display-name>Journal Content</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/journal_content/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>58</portlet-name>

        <display-name>Login</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/login/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>59</portlet-name>

        <display-name>Polls Display</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/polls_display/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>61</portlet-name>

        <display-name>Loan Calculator</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/loan_calculator/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>62</portlet-name>

        <display-name>Journal Articles</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/journal_articles/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>64</portlet-name>

        <display-name>Recent Documents</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/recent_documents/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>65</portlet-name>

        <display-name>Analog Clock</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/analog_clock/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>66</portlet-name>

        <display-name>Web Proxy</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/httpbridge/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>src</name>

                <value>http://www.google.com</value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>67</portlet-name>

        <display-name>Amazon Rankings</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/amazon_rankings/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>isbns</name>

                <value>0066620996</value>

                <value>0131412752</value>

                <value>0201633612</value>

                <value>0310205719</value>

                <value>0310241448</value>

            </preference>

            <preferences-validator>com.liferay.portlet.amazonrankings.AmazonRankingsPreferencesValidator</preferences-validator>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>68</portlet-name>

        <display-name>WSRP Proxy</display-name>

        <portlet-class>com.liferay.portlet.wsrp.WSRPProxyPortlet</portlet-class>

        <init-param>

            <name>edit-action</name>

            <value>/wsrp/edit</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

            <portlet-mode>help</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>



            <!-- IBM Producer -->



            <preference>

                <name>wsrp-service-url</name>

                <value>http://wsrp.dyndns.org:9081/wsrp</value>

            </preference>           

            <preference>

                <name>markup-endpoint</name>

                <value>WSRPBaseService</value>

            </preference>

            <preference>

                <name>service-description-endpoint</name>

                <value>WSRPServiceDescriptionService</value>

            </preference>

            <preference>

                <name>registration-endpoint</name>

                <value>WSRPRegistrationService</value>

            </preference>

            <preference>

                <name>portlet-management-endpoint</name>

                <value>WSRPPortletManagementService</value>

            </preference>

            <preference>

                <name>portlet-handle</name>

                <value>_5_0O0EKGSUSD0SHNS1_J6</value>

            </preference>



            <!-- Sun Producer -->



            <!--<preference>

                <name>wsrp-service-url</name>

                <value>http://sunwsrp.dyndns.org:80/portal/wsrp/router</value>

            </preference>           

            <preference>

                <name>markup-endpoint</name>

                <value>markup/default</value>

            </preference>

            <preference>

                <name>service-description-endpoint</name>

                <value>servicedescription/default</value>

            </preference>

            <preference>

                <name>registration-endpoint</name>

                <value>registration/default</value>

            </preference>

            <preference>

                <name>portlet-management-endpoint</name>

                <value>portletmanagement/default</value>

            </preference>

            <preference>

                <name>portlet-handle</name>

                <value>BookmarkPortlet</value>

            </preference>-->



            <!-- Liferay Producer -->



            <!--

            <preference>

                <name>wsrp-service-url</name>

                <value>http://localhost/c/wsrp</value>

            </preference>           

            <preference>

                <name>markup-endpoint</name>

                <value>WSRPBaseService</value>

            </preference>

            <preference>

                <name>service-description-endpoint</name>

                <value>WSRPServiceDescriptionService</value>

            </preference>

            <preference>

                <name>registration-endpoint</name>

                <value>WSRPRegistrationService</value>

            </preference>

            <preference>

                <name>portlet-management-endpoint</name>

                <value>WSRPPortletManagementService</value>

            </preference>

            <preference>

                <name>portlet-handle</name>

                <value>4</value>

            </preference>

            -->



        </portlet-preferences>

    </portlet>

    <portlet>

        <portlet-name>69</portlet-name>

        <display-name>Hello Laszlo</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/hello_laszlo/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>70</portlet-name>

        <display-name>Password Generator</display-name>

        <portlet-class>com.liferay.portlet.JSPPortlet</portlet-class>

        <init-param>

            <name>view-jsp</name>

            <value>/portlet/password_generator/view.jsp</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>71</portlet-name>

        <display-name>Navigation</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/navigation/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>73</portlet-name>

        <display-name>Breadcrumb</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/breadcrumb/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>77</portlet-name>

        <display-name>Journal Content Search</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/journal_content_search/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>79</portlet-name>

        <display-name>Enterprise Admin</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>       

        <init-param>

            <name>view-action</name>

            <value>/enterprise_admin/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>administrator</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>80</portlet-name>

        <display-name>Organization Admin</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>       

        <init-param>

            <name>view-action</name>

            <value>/organization_admin/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>administrator</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>81</portlet-name>

        <display-name>Countdown</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>       

        <init-param>

            <name>edit-action</name>

            <value>/countdown/edit</value>

        </init-param>

        <init-param>

            <name>view-action</name>

            <value>/countdown/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

            <portlet-mode>edit</portlet-mode>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>82</portlet-name>

        <display-name>Language</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/language/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>83</portlet-name>

        <display-name>Announcements</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/announcements/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <portlet-preferences>

            <preference>

                <name>content</name>

                <value></value>

            </preference>

        </portlet-preferences>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>85</portlet-name>

        <display-name>Site Map</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/site_map/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>86</portlet-name>

        <display-name>Portlet Configuration</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>87</portlet-name>

        <display-name>Layout Configuration</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/layout_configuration/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>88</portlet-name>

        <display-name>Layout Management</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/layout_management/edit_pages</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>90</portlet-name>

        <display-name>Portal</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>91</portlet-name>

        <display-name>Alfresco Content</display-name>

        <portlet-class>com.liferay.portlet.StrutsPortlet</portlet-class>

        <init-param>

            <name>view-action</name>

            <value>/alfresco_content/view</value>

        </init-param>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <resource-bundle>com.liferay.portlet.StrutsResourceBundle</resource-bundle>

        <security-role-ref>

            <role-name>power-user</role-name>

        </security-role-ref>

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>

    <portlet>

        <portlet-name>92</portlet-name>

        <display-name>MyHelloPortlet</display-name>

        <portlet-class>net.wehrens.portlets.HelloWorld</portlet-class>

        <expiration-cache>0</expiration-cache>

        <supports>

            <mime-type>text/html</mime-type>

        </supports>

        <portlet-info>

            <title>My Own Hello World</title>

            <short-title>My Hello World</short-title>

            <keywords>Hello Sick World</keywords>

        </portlet-info>       

        <security-role-ref>

            <role-name>user</role-name>

        </security-role-ref>

    </portlet>




    <custom-window-state>

        <window-state>exclusive</window-state>

    </custom-window-state>

    <custom-window-state>

        <window-state>pop_up</window-state>

    </custom-window-state>

    <user-attribute>

        <name>user.bdate</name>

    </user-attribute>

    <user-attribute>

        <name>user.gender</name>

    </user-attribute>

    <user-attribute>

        <name>user.employer</name>

    </user-attribute>

    <user-attribute>

        <name>user.department</name>

    </user-attribute>

    <user-attribute>

        <name>user.jobtitle</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.prefix</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.given</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.family</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.middle</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.suffix</name>

    </user-attribute>

    <user-attribute>

        <name>user.name.nickName</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.name</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.street</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.city</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.stateprov</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.postalcode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.country</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.postal.organization</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.telephone.intcode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.telephone.loccode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.telephone.number</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.telephone.ext</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.telephone.comment</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.fax.intcode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.fax.loccode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.fax.number</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.fax.ext</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.fax.comment</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.mobile.intcode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.mobile.loccode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.mobile.number</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.mobile.ext</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.mobile.comment</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.telecom.pager.intcode</name>

    </user-attribute>

    <user-attribute>

        <name>user.home-info.t
Avatar billede catch22 Nybegynder
29. juni 2006 - 02:03 #3
kan se det er mere end sitet kan klare, måske selve området med den pågældende portlet kan gøre det:

<portlet>
        <portlet-name>92</portlet-name>
        <display-name>MyHelloPortlet</display-name>
        <portlet-class>net.wehrens.portlets.HelloWorld</portlet-class>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
        </supports>
        <portlet-info>
            <title>My Own Hello World</title>
            <short-title>My Hello World</short-title>
            <keywords>Hello Sick World</keywords>
        </portlet-info>       
        <security-role-ref>
            <role-name>user</role-name>
        </security-role-ref>
    </portlet>
Avatar billede arne_v Ekspert
29. juni 2006 - 04:39 #4
Nu er det ved at være et stykke tid siden at jeg har leget med portlets.

Men jeg forstår ikke den portlet.xml.

Som jeg husker det så laver man en war med:
  - sine egne portlet class filer og JSP'er
  - en portlet.xml for dem og kun dem
og deployer den.
Avatar billede catch22 Nybegynder
29. juni 2006 - 22:49 #5
Det ved jeg så ikke, da dette er det første jeg har med portlets at gøre, men grunden til at portlet.xml er så lang, skyldes nok at liferay har oceaner af portlets inkluderet i deres software, man kan så vælge at tilføje dem fra en menu.
Avatar billede arne_v Ekspert
30. juni 2006 - 04:52 #6
jeg tror at du griber det helt forkert an

du laver en war fil med:
  dine class filer
  dine JSP filer
  portlet.xml med kun dine portlets

og den war fil deployer du så til liferay
Avatar billede arne_v Ekspert
30. juni 2006 - 04:53 #7
for Liferay 4.0 kan man bare kopiere war filen til C:\home\liferay\deploy

i tidligere versioner skulle man vistnok bruge et ant script
Avatar billede arne_v Ekspert
30. juni 2006 - 04:53 #8
jeg har lige testet din portlet
Avatar billede arne_v Ekspert
30. juni 2006 - 04:53 #9
package test;

import javax.portlet.*;
import java.io.*;

public class HelloWorldPortlet extends GenericPortlet
{
    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("Hello World !");
    }
}
Avatar billede arne_v Ekspert
30. juni 2006 - 04:54 #10
<?xml version="1.0" encoding="UTF-8"?>
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" version="1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">
    <portlet>
        <portlet-name>HelloWorldPortlet</portlet-name>
        <display-name>Hello World test</display-name>
        <portlet-class>test.HelloWorldPortlet</portlet-class>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
        </supports>
        <supported-locale>en</supported-locale>       
        <portlet-info>
            <title>Hello World</title>
            <short-title>HW</short-title>
            <keywords>test</keywords>
        </portlet-info>
    </portlet>
</portlet-app>
Avatar billede arne_v Ekspert
30. juni 2006 - 04:54 #11
C:\Work\simpleportlet>jar tvf arnetest.war
    0 Thu Jun 29 22:35:46 EDT 2006 META-INF/
  103 Thu Jun 29 22:35:44 EDT 2006 META-INF/MANIFEST.MF
    0 Thu Jun 29 22:35:46 EDT 2006 WEB-INF/
    0 Thu Jun 29 22:35:46 EDT 2006 WEB-INF/classes/
    0 Thu Jun 29 22:35:12 EDT 2006 WEB-INF/classes/test/
  906 Thu Jun 29 22:35:12 EDT 2006 WEB-INF/classes/test/HelloWorldPortlet.class
    0 Thu Jun 29 22:35:46 EDT 2006 WEB-INF/lib/
  845 Thu Jun 29 22:35:42 EDT 2006 WEB-INF/portlet.xml
  187 Thu Jun 29 22:29:18 EDT 2006 WEB-INF/web.xml
Avatar billede arne_v Ekspert
30. juni 2006 - 04:55 #12
og den virker fint

testet på Windows, Liferay 4.0 Professional, bundlet Tomcat udgave for JDK 1.5.0
Avatar billede catch22 Nybegynder
01. juli 2006 - 01:27 #13
Så fik jeg også det til at fungere her. Du havde ret, jeg var gået i en forkert retning (forvirret af delvis forældet dokumentation og generel gåen forkert i byen), og det virkede først ved at følge den metode du anviste.

Smid et svar, og points'ne er dine.
Avatar billede arne_v Ekspert
01. juli 2006 - 05:11 #14
svar
Avatar billede arne_v Ekspert
01. juli 2006 - 05:28 #15
Det er faktisk ikke så svært.

PS: Du ved godt at du bør bruge forwarde til en JSP for output ikke ?
Avatar billede catch22 Nybegynder
01. juli 2006 - 11:24 #16
Jeg er kun lige startet med at kigge på portlets og web generelt, så JSP er en by i Rusland for mig. Der findes generelt ikke overvældende mange bøger om emnet portlets. Har kun kunnet finde en.
Avatar billede arne_v Ekspert
02. juli 2006 - 02:17 #17
du får lige et eksempel
Avatar billede arne_v Ekspert
02. juli 2006 - 02:18 #18
package test;

import javax.portlet.*;
import java.io.*;

public class GuidePortlet extends GenericPortlet
{
    public void doView(RenderRequest request, RenderResponse response) throws PortletException, IOException
    {
        response.setContentType("text/html");
        String jspName = getPortletConfig().getInitParameter("jspView");
        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(jspName);
        rd.include(request,response);
    }
    public void doHelp(RenderRequest request, RenderResponse response) throws PortletException, IOException
    {
        response.setContentType("text/html");
        String jspName = getPortletConfig().getInitParameter("jspHelp");
        PortletRequestDispatcher rd = getPortletContext().getRequestDispatcher(jspName);
        rd.include(request,response);
    }
}
Avatar billede arne_v Ekspert
02. juli 2006 - 02:18 #19
<portlet>
        <portlet-name>GuidePortlet</portlet-name>
        <display-name>Guide to portal</display-name>
        <portlet-class>test.GuidePortlet</portlet-class>
        <init-param>
            <name>jspView</name>
            <value>/viewguide.jsp</value>
        </init-param>
        <init-param>
            <name>jspHelp</name>
            <value>/helpguide.jsp</value>
        </init-param>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
            <portlet-mode>HELP</portlet-mode>
        </supports>
        <supported-locale>en</supported-locale>       
        <portlet-info>
            <title>Guide to portal.</title>
            <short-title>Guide.</short-title>
            <keywords>guide help portal</keywords>
        </portlet-info>
    </portlet>
Avatar billede arne_v Ekspert
02. juli 2006 - 02:19 #20
<%@ page session="false" %>
<%@ page import="javax.portlet.*" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>
<h2>Pages:</h2>
<ul>
<li>Basic</li>
<li>Advanced</li>
</ul>
<h2>Basic portlets:</h2>
<ul>
<li>Links</li>
<li>Guide</li>
</ul>
<h2>Advanved portlets:</h2>
<ul>
<li>Links</li>
<li>Guide</li>
<li>Database</li>
</ul>
Avatar billede arne_v Ekspert
02. juli 2006 - 02:19 #21
<%@ page session="false" %>
<%@ page import="javax.portlet.*" %>
<%@ taglib uri="http://java.sun.com/portlet" prefix="portlet" %>
<portlet:defineObjects/>
Arne Portal 2005.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester