Patrick,
I'm sorry, but you have an erroneous impression of Pluto and its versions. Pluto implements a portlet container, but it also includes a lightweight (not full featured) portal. That is the case for both versions 1.0.1 and 1.1.
Pluto version 1.0.1 is the currently released version and contains a fully functional portal. It was originally donated by IBM to Apache. Many portals like Jetspeed, uPortal and Cocoon use the Pluto 1.0.1 container internally. The Geronimo web console uses the Pluto 1.0.1 portal including the container and deploys numerous portlets used to administer the Geronimo app server.
Pluto 1.1 is in development and is not yet fully functional. Version 1.1 is a re-write of the container and portal to make it easier to use as a portlet container and a portal. We welcome any help and contributions to our efforts.
/Craig
| Patrick Huber <[EMAIL PROTECTED]>
11/08/2005 12:53 PM
|
|
Hi Min
I'm a beginner too and here's what I've found so far:
- Pluto is not a portal. It's just a portlet container -> don't use
pluto directly. Instead, use a real portal
- If you want to use pluto directly, build the 1.1 version from
source. The directions are here:
http://portals.apache.org/pluto/getting-started.html (use tomcat-5.5.9
http://portals.apache.org/pluto/app-servers.html)
I was able to deploy a portlet of my own to the container (I added it
to the testsuite, the portlet has its own context within tomcat). but
I'm getting a nullpointer in PortletWindowImpl because the config
attribute is null. So I give up and now I'm looking at jetspeed2.
HTH
Patrick
2005/11/8, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
>
>
> I am a beginner of portlets. I tried a very very simple HelloWorld portlet (
> the source from onjava.com) like this:
>
> package com.test;
>
> import javax.portlet.*;
>
> import java.io.IOException;
>
> public class HelloWorld extends GenericPortlet{
>
> protected void doView(RenderRequest request, RenderResponse response)
> throws PortletException, IOException{
> response.setContentType("text/html");
> response.getWriter().println("Hello Portlet");
> }
>
> }
>
> portlet.xml file :
>
> <?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-app-name>HelloWold</portlet-app-name>
>
> <portlet>
> <description>HelloWorldDescription</description>
>
> <portlet-name>HelloWorld</portlet-name>
>
> <display-name>Hello World</display-name>
>
> <portlet-class>com.test.HelloWorld</portlet-class>
>
> <expiration-cache>-1</expiration-cache>
>
> <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>Hello World</short-title>
> <keywords>Hello</keywords>
> </portlet-info>
> </portlet>
> </portlet-app>
>
> web.xml is:
>
> <?xml version="1.0" encoding="UTF-8"?>
> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application
> 2.3//EN"
>
> "http://java.sun.com/dtd/web-app_2_3.dtd">
> <web-app>
> <display-name>HelloWorld</display-name>
> <welcome-file-list>
> <welcome-file>index.jsp</welcome-file>
> </welcome-file-list>
> </web-app>
>
> I installed the Pluto-1.0.1, the deployment from the admin is successful.
> But if I'd like to open the HelloWorld portlet, it says always 'error
> occured in portlet'. I checked the log file, it shows sth like this:
>
> 08.11.2005 10:09:26
> org.apache.pluto.portalImpl.services.log.LoggerImpl error
> SCHWERWIEGEND: PortletInvokerImpl.render() - Error while dispatching
> portlet.
> java.lang.ClassCastException: com.test.HelloWorld
> at
> org.apache.pluto.core.PortletServlet.init(PortletServlet.java:66)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
> at
> org.apache.pluto.invoker.impl.PortletInvokerImpl.load(PortletInvokerImpl.java:80)
> at
> org.apache.pluto.PortletContainerImpl.portletLoad(PortletContainerImpl.java:218)
> at
> org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.portletLoad(PortletContainerWrapperImpl.java:94)
> at
> org.apache.pluto.portalImpl.aggregation.PortletFragment.service(PortletFragment.java:120)
> at
> org.apache.jsp.WEB_002dINF.aggregation.ColumnFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.ColumnFragment_jsp:65)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.RowFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.RowFragment_jsp:65)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.PageFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.PageFragment_jsp:74)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.RootFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.RootFragment_jsp:136)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:254)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
> 08.11.2005 10:09:26
> org.apache.pluto.portalImpl.services.log.LoggerImpl error
> SCHWERWIEGEND: Error in Portlet
> javax.portlet.PortletException
> at
> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:146)
> at
> org.apache.pluto.invoker.impl.PortletInvokerImpl.load(PortletInvokerImpl.java:80)
> at
> org.apache.pluto.PortletContainerImpl.portletLoad(PortletContainerImpl.java:218)
> at
> org.apache.pluto.portalImpl.core.PortletContainerWrapperImpl.portletLoad(PortletContainerWrapperImpl.java:94)
> at
> org.apache.pluto.portalImpl.aggregation.PortletFragment.service(PortletFragment.java:120)
> at
> org.apache.jsp.WEB_002dINF.aggregation.ColumnFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.ColumnFragment_jsp:65)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.RowFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.RowFragment_jsp:65)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.PageFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.PageFragment_jsp:74)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.jsp.WEB_002dINF.aggregation.RootFragment_jsp._jspService(org.apache.jsp.WEB_002dINF.aggregation.RootFragment_jsp:136)
> at
> org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
> at
> org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
> at
> org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.portalImpl.aggregation.AbstractFragment.service(AbstractFragment.java:112)
> at
> org.apache.pluto.portalImpl.Servlet.doGet(Servlet.java:254)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
> at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
> at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
> at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
> at
> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
> at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
> at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
> at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
> at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
> at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
> at
> org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
> at
> org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
> at
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
> at java.lang.Thread.run(Thread.java:595)
> Caused by: java.lang.ClassCastException: com.test.HelloWorld
> at
> org.apache.pluto.core.PortletServlet.init(PortletServlet.java:66)
> at
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)
> at
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
> at
> org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:641)
> at
> org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
> at
> org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
> at
> org.apache.pluto.invoker.impl.PortletInvokerImpl.invoke(PortletInvokerImpl.java:120)
> ... 74 more
> ...
>
> Could somebody help me? Please!!! I am going to getting crazy. Thank you!
>
> regards, Min
--
"I love deadlines. I like the whooshing sound they make as they fly
by." -- Douglas Adams
