I still get this exception:
4    [main] ERROR 
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ptest]  - 
Servlet /ptest threw load() exception
java.lang.InstantiationException

Here is the modified web.xml

<?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 >
<taglib>
      <taglib-uri>http://java.sun.com/portlet</taglib-uri>
      <taglib-location>tld/portlet.tld</taglib-location>
   </taglib>
<servlet>
  <servlet-name>HelloWorld</servlet-name>
     <display-name>HelloWorld Wrapper</display-name>
      <description>Automated generated
      Portlet Wrapper</description>
      <servlet-class>javax.portlet.GenericPortlet
      </servlet-class>
        <init-param>
            <param-name>portlet-name</param-name>
            <param-value>HelloWorld</param-value>
        </init-param>
         <load-on-startup>1</load-on-startup>
      <init-param>
         <param-name>portlet-class</param-name>
         <param-value>testpluto.HelloWorld
         </param-value>
      </init-param>
      <init-param>
         <param-name>portlet-guid</param-name>
         <param-value>HelloPluto.HelloWorld
         </param-value>
      </init-param>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorld</servlet-name>
 <url-pattern>/PlutoInvoker/HelloWorld</url-pattern>
</servlet-mapping>

</web-app>

Should I use JetSpeed? I thought Pluto-1.1.4 can handle invocation. Also 
GenericPortlet is an abstract class. HelloWorld is extending this abstract 
class. Is there some bug in my JRE  that disables instantiation of a class that 
is extending an abstract class? Guess I don't understand this concept.
Why an abstract class? Why not an interface? Also, what is the purpose of
org.apache.pluto.core.PortletServlet that is used in the testsuite that came
with Pluto-1.1.4. I tried extending HelloWorld to PortletServlet. It is not 
coming up with an instantiation exception, but has certain session parameters 
missing viz:

javax.portlet.response
javax.portlet.request
org.apache.pluto.core.method

I tried injecting these parameters in index.jsp as:
request.getSession().setAttribute("javax.portlet.response", request);
request.getSession().setAttribute("javax.portlet.request",response );
request.getSession().setAttribute("org.apache.pluto.core.method", new 
Integer(1));

But that didn't work. There is an InternalPortletRequest and 
InternalPortletResponse that get set by the Invoker.

Any help appreciated.
Thanks
Murthy


-----Original Message-----
From: Elliot Metsger [mailto:[EMAIL PROTECTED]
Sent: Saturday, September 01, 2007 9:46 AM
To: [email protected]
Subject: Re: Pluto 1.1.4 - java.lang.InstantiationException while deploying

It looks like your web.xml is incorrect.

For Pluto 1.1, you need to have <load-on-startup> (which you have
commented out), the <init-param> portlet-name (check), and you need a
<servlet-mapping> "HelloWorld" to "/PlutoInvoker/HelloWorld/" (which you
don't have at all).

The other elements in your web.xml (portlet-guid, portlet-class) are for
Pluto 1.0.  Which are fine to keep in your web.xml if you are planning
to deploy the portlet in multiple container.

I think the existing servlet mapping you have is incorrect for both
pluto 1.1 and pluto 1.0 containers.

As an aside, your web.xml contains a doctype for servlet 2.3, but your
<web-app> and following is in the servlet 2.4 namespace.  That may
confuse things as well. Tomcat is probably forgiving but other servlet
containers may not be.

Elliot

Murthy Gandikota wrote:
> Hi
> I am testing a HelloWorld app. Here is the HelloWorld.java
>
> package testpluto;
>
> import javax.portlet.GenericPortlet;
> import javax.portlet.RenderRequest;
> import javax.portlet.RenderResponse;
> import javax.portlet.PortletException;
> import java.io.IOException;
>
> import javax.servlet.*;
>
> public class HelloWorld extends GenericPortlet {
>   protected void doView(RenderRequest request,
>   RenderResponse response) throws
>   PortletException, IOException {
>         response.setContentType("text/html");
>         response.getWriter().println("Hello Portlet");
>         }
> }
>
> I have successfully compiled this class and
> The path to it is WEB-INF/classes/tespluto
>
> Then I added these to the web.xml
>
> <?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 version="2.4"
>          xmlns="http://java.sun.com/xml/ns/j2ee";
>          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>          xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
>          http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
> <servlet>
>   <servlet-name>HelloWorld</servlet-name>
>      <display-name>HelloWorld Wrapper</display-name>
>       <description>Automated generated
>       Portlet Wrapper</description>
>       <servlet-class>javax.portlet.GenericPortlet
>       </servlet-class>
>         <init-param>
>             <param-name>portlet-name</param-name>
>             <param-value>HelloWorld</param-value>
>         </init-param>
>         <!-- <load-on-startup>1</load-on-startup> -->
>       <init-param>
>          <param-name>portlet-class</param-name>
>          <param-value>testpluto.HelloWorld
>          </param-value>
>       </init-param>
>       <init-param>
>          <param-name>portlet-guid</param-name>
>          <param-value>HelloPluto.HelloWorld
>          </param-value>
>       </init-param>
>     <!-- <load-on-startup>1</load-on-startup> -->
> </servlet>
> <servlet-mapping>
> <servlet-name>HelloWorld</servlet-name>
> <url-pattern>/hello/*</url-pattern>
> </servlet-mapping>
> </web-app>
>
> The WEB-INF/portlet.xml
> <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>HelloWorld</portlet-name>
>       <display-name>Change Case Portlet</display-name>
>       <portlet-class>testpluto.HelloWorld</portlet-class>
>       <supports>
>          <mime-type>text/html</mime-type>
>          <portlet-mode>view</portlet-mode>
>       </supports>
>       <portlet-info>
>          <title>Hello World</title>
>       </portlet-info>
>     <init-param>
>       <name>config</name>
>       <value>/WEB-INF/ptest-config.xml</value>
>     </init-param>
>    </portlet>
>
>
> </portlet-app>
>
> The index.jsp
> <jsp:forward page="/hello">
>
> I restarted Pluto several times and all these times when accessing
> http://localhost:8080/ptest/hello
>
> I get the following error in the Catalina.out
>
> 4    [http-8080-Processor25] ERROR 
> org.apache.catalina.core.ContainerBase.[Catalina].[localhost].[/ptest].[HelloWorld]
>   - Allocate exception for servlet HelloWorld
> java.lang.InstantiationException
>         at 
> sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>         at java.lang.Class.newInstance0(Class.java:350)
>         at java.lang.Class.newInstance(Class.java:303)
>         at 
> org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1055)
>         at 
> org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:757)
>         at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
>         at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at 
> org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:392)
>         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:869)
>         at 
> org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
>         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)
>
> I have been breaking my head over these for nearly 40 hours now.
> Sorry, I don't know maven and don't intend to know at this time. I am fine 
> with ant.
> It took me a while to understand the deploy. I even tried deploying from the 
> manager/admin screens. Still
> The same result.
>
> I'd appreciate all of the help you can give me in making this successful.
>
> Thanks
> Murthy
>

Reply via email to