Hi,

I am new to jetspeed portlets.I have deployed a portlet application using
tomcat5.0 and jetspeed2.0. When I was accessing the RegisterUser portlet using
http://localhost/myportal/ptest2.psml url I got the follwing error in
jetspeed.log file.


2006-09-06 17:54:39,395 [http-8080-Processor24] ERROR
org.apache.jetspeed.factory.JetspeedPortletFactory - PortletFactory: Failed to
load portlet com.test.RegisterUser
java.lang.ClassCastException
        at com.test.RegisterUser.init(RegisterUser.java:65)
        at
org.apache.jetspeed.factory.JetspeedPortletInstance.init(JetspeedPortl
etInstance.java:84)
        at org.apache.jetspeed.factory.JetspeedPortletFactory.getPortlet

Instance(JetspeedPortletFactory.java:226)
        at org.apache.jetspeed.container.invoker.ServletPortletInvoker.
invoke(ServletPortletInvoker.java:189)
        at org.apache.jetspeed.container.invoker.ServletPortletInvoker.
render(ServletPortletInvoker.java:125)
        at
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImp
l.java:119)
        at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.
renderPortlet(JetspeedPortletContainerWrapper.java:120)
        at
org.apache.jetspeed.aggregator.impl.RenderingJobImpl.execute(RenderingJ
obImpl.java:120)
        at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.
renderNow(PortletRendererImpl.java:110)
        at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.
aggregateAndRender(PageAggregatorImpl.java:199)
        at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.
aggregateAndRender(PageAggregatorImpl.java:182)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build
(PageAggregatorImpl.java:106)
        at
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve
.java:48)
        at

org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedP
ipeline.java:203)
        at
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(A
ctionValveImpl.java:132)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(Jetspeed
Pipeline.java:203)
        at
org.apache.jetspeed.container.ContainerValve.invoke(ContainerVal
ve.java:76)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPip
eline.java:203)
        at
org.apache.jetspeed.decoration.DecorationValve.invoke(DecorationVal
ve.java:100)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(Jetspeed
Pipeline.java:203)
        at
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerV
alveImpl.java:179)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipe
line.java:203)
        at org.apache.jetspeed.security.impl.LoginValidationValveImpl.
invoke(LoginValidationValveImpl.java:143)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeli
ne.java:203)
        at org.apache.jetspeed.security.impl.PasswordCredential
ValveImpl.invoke(PasswordCredentialValveImpl.java:148)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline
.java:203)
        at org.apache.jetspeed.localization.impl.Localization
ValveImpl.invoke(LocalizationValveImpl.java:168)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipel
ine.java:203)
        at
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(Abstrac
tSecurityValve.java:117)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:437)
        at
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(Abstr
actSecurityValve.java:111)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipe
line.java:203)
        at org.apache.jetspeed.container.url.impl.PortalURLValveImpl
.invoke(PortalURLValveImpl.java:55)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipe
line.java:203)
        at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl
.invoke(CapabilityValveImpl.java:128)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPip
eline.java:203)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipel
ine.java:185)
        at
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:231)
        at
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:226)
        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(ApplicationF
ilterChain.java:173)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValv
eContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardC
ontextValve.java:198)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(Standard
ValveContext.java:104)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authent
icatorBase.java:462)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardV
alveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.
java:520)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValv
e.java:137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(Stan
dardValveContext.java:104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVal
ve.java:118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(Stand
ardValveContext.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipe
line.java:520)
        at
org.apache.catalina.core.StandardEngineValve.invoke(Standard
EngineValve.java:109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(Standard
ValveContext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipelin
e.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(Contai
nerBase.java:929)
        at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.
java:160)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.pro
cessConnection(Http11Protocol.java:705)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Thread
Pool.java:684)
        at java.lang.Thread.run(Thread.java:534)
2006-09-06 17:54:39,396 [http-8080-Processor24] ERROR
org.apache.jetspeed.aggregator.impl.RenderingJobImpl - Error rendering
 portlet
OID ptest2-1
javax.portlet.UnavailableException: Failed to load portlet
com.test.RegisterUser: java.lang.ClassCastException
        at org.apache.jetspeed.factory.JetspeedPortletFactory.

getPortletInstance(JetspeedPortletFactory.java:248)
        at org.apache.jetspeed.container.invoker.ServletPortletInvoker.
invoke(ServletPortletInvoker.java:189)
        at org.apache.jetspeed.container.invoker.ServletPortletInvoker.
render(ServletPortletInvoker.java:125)
        at org.apache.pluto.PortletContainerImpl.
renderPortlet(PortletContainerImpl.java:119)
        at org.apache.jetspeed.container.JetspeedPortletContainerWrapper
.renderPortlet(JetspeedPortletContainerWrapper.java:120)
        at
org.apache.jetspeed.aggregator.impl.RenderingJobImpl.
execute(RenderingJobImpl.java:120)
        at org.apache.jetspeed.aggregator.impl.PortletRendererImpl.
renderNow(PortletRendererImpl.java:110)
        at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.
aggregateAndRender(PageAggregatorImpl.java:199)
        at org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.
aggregateAndRender(PageAggregatorImpl.java:182)
        at
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.
build(PageAggregatorImpl.java:106)
        at
org.apache.jetspeed.aggregator.AggregatorValve.invoke(Ag
gregatorValve.java:48)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(J
etspeedPipeline.java:203)
        at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.
invoke(ActionValveImpl.java:132)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(Je
tspeedPipeline.java:203)
        at org.apache.jetspeed.container.ContainerValve.
invoke(ContainerValve.java:76)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(J
etspeedPipeline.java:203)
        at
org.apache.jetspeed.decoration.DecorationValve.invoke(Dec
orationValve.java:100)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNex
t(JetspeedPipeline.java:203)
        at
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invok
e(ProfilerValveImpl.java:179)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext
(JetspeedPipeline.java:203)
        at org.apache.jetspeed.security.impl.LoginValidationValveImpl.
invoke(LoginValidationValveImpl.java:143)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(Jetspeed
Pipeline.java:203)
        at org.apache.jetspeed.security.impl.PasswordCredentialValveImpl
.invoke(PasswordCredentialValveImpl.java:148)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeli
ne.java:203)
        at org.apache.jetspeed.localization.impl.LocalizationValveImpl.
invoke(LocalizationValveImpl.java:168)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline
.java:203)
        at
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractS
ecurityValve.java:117)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:437)
        at org.apache.jetspeed.security.impl.AbstractSecurityValve.
invoke(AbstractSecurityValve.java:111)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline
.java:203)
        at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.
invoke(PortalURLValveImpl.java:55)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline
.java:203)
        at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl
.invoke(CapabilityValveImpl.java:128)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline
.java:203)
        at
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185)
        at
org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:231)
        at
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:226)
        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(ApplicationFilter
Chain.java:173)
        at

org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.j
ava:214)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon
ext.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContex
tValve.java:198)
        at

org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve
.java:152)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveCon
text.java:104)
        at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica
torBase.java:462)
        at


org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContex
t.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte
xt.java:104)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveConte
xt.java:102)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.StandardEngineValve.
invoke(StandardEngineValve.java:109)
        at
org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext
.java:104)
        at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java
:929)
        at 
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
        at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.
processConnection(Http11Protocol.java:705)
        at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.
java:684)
        at java.lang.Thread.run(Thread.java:534)


My Portlet class is ,

package com.test;

import java.io.IOException;
import java.util.HashMap;
import java.util.Map;

import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.portlet.PortletConfig;
import javax.portlet.PortletException;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;

import org.apache.jetspeed.CommonPortletServices;
import org.apache.jetspeed.administration.PortalAdministration;
import org.apache.jetspeed.administration.RegistrationException;
import org.apache.jetspeed.security.UserManager;
import org.apache.portals.bridges.velocity.AbstractVelocity
MessagingPortlet;
import org.apache.velocity.context.Context;


public class RegisterUser extends AbstractVelocityMessagingPortlet {
        
    private static final String IP_TEMPLATE_LOCATION = 
"emailTemplateLocation";

    private static final String IP_TEMPLATE_NAME = "emailTemplateName";

    private static final String IP_REDIRECT_PATH = "redirectPath";

    private static final String IP_RETURN_URL = "returnURL";

    private static final String IP_OPTION_EMAILS_SYSTEM_UNIQUE =
"Option_Emails_System_Unique";

    private static final String IP_OPTION_GENERATE_PASSWORDS =
"Option_Generate_Passwords";

    private static final String IP_OPTION_USE_EMAIL_AS_USERNAME =
"Option_Use_Email_As_Username"; 

    private static final String CTX_USERINFO="user";

        private static final String MSG_MESSAGE = "MSG";

        private static final String CTX_MESSAGE = "MSG";
    
    private String templateLocation;
    private String emailTemplateName;
    private String redirectPath;
    private String returnURL;
    private boolean optionForceGeneratedPasswords = false;
    private boolean optionForceEmailAsUsername = true;
    private boolean optionForceEmailsToBeSystemUnique = true;
    
    private PortalAdministration admin;
    //private JetspeedTemplateLocator templateLocator;

        private UserManager userManager;
    
        public void init(PortletConfig config) throws PortletException {
                super.init(config);
                
       admin = (PortalAdministration) getPortletContext().getAttribute(
        "cps:PortalAdministration");
            
        System.out.println("user manager:"+userManager);
                redirectPath=config.getInitParameter(IP_REDIRECT_PATH);
                returnURL=config.getInitParameter(IP_RETURN_URL);
                templateLocation=config.getInitParameter(IP_TEMPLATE_LOCATION);
                emailTemplateName=config.getInitParameter(IP_TEMPLATE_NAME);
                
        
optionForceEmailAsUsername=Boolean.getBoolean(
config.getInitParameter(IP_OPTION_USE_EMAIL_AS_USERNAME));
        
optionForceEmailsToBeSystemUnique=Boolean.getBoolean(
config.getInitParameter(IP_OPTION_EMAILS_SYSTEM_UNIQUE));
        
optionForceGeneratedPasswords=Boolean.getBoolean
(config.getInitParameter(IP_OPTION_GENERATE_PASSWORDS));
                
templateLocation=getPortletContext().getRealPath(templateLocation);
                System.out.println(templateLocation);
                System.out.println("***"+config.getInitParameter("roles"));
                /*
                System.out.println(IP_TEMPLATE_LOCATION+":"+templateLocation);
                System.out.println(IP_TEMPLATE_NAME+":"+emailTemplateName);
                System.out.println(IP_REDIRECT_PATH+":"+redirectPath);
                System.out.println(IP_RETURN_URL+":"+returnURL);
        
System.out.println(IP_OPTION_EMAILS_SYSTEM_UNIQUE+":
"+optionForceEmailsToBeSystemUnique);
        
System.out.println(IP_OPTION_USE_EMAIL_AS_USERNAME+":
"+optionForceEmailAsUsername);
        
System.out.println(IP_OPTION_GENERATE_PASSWORDS+":"
+optionForceGeneratedPasswords);
                */
                
        }
        
        public void doView(RenderRequest request, RenderResponse response) 
throws
PortletException, IOException {
                System.out.println("inside doview");
                response.setContentType("text/html");
                Context context=getContext(request);
                Object userInfoObject=receiveRenderMessage(request,"hello");
                //System.out.println("user email:"+userInfoObject.get())
                context.put(CTX_USERINFO,userInfoObject);
                String guid = request.getParameter("newUserGUID");
                //System.out.println("guid:"+guid);
                context.put(CTX_MESSAGE, consumeRenderMessage(request, 
MSG_MESSAGE));
                //guid = request.getParameter("newUserGUID");
                //System.out.println("guid2:"+guid);
                super.doView(request, response);
        }
        public void processAction(ActionRequest request, ActionResponse 
response)
throws PortletException, IOException {
                System.out.println("inside processAction");
                String 
email=request.getParameter("user.business-info.online.email");
                String password=request.getParameter("password");
                System.out.println(email);
                System.out.println(password);
                Map map=new HashMap();
                map.put("email",email);
                map.put("password",password);
                if(admin!=null){
                        try {
                                
admin.registerUser(email,password,null,null,map,null,null);
                        } catch (RegistrationException e) {
                                System.out.println("user registration 
exception"+e.getMessage());
                        }
                }else{
                        System.out.println("Reference to admin is null");
                }
        }
        
        
}


portlet.xml file
---------------------

<?xml version="1.0" encoding="UTF-8"?>
<portlet-app id="PTest2" version="1.0">
  <portlet id="MyUserRegistrationPortlet">
    <init-param>
        <description>This parameter sets the template used in view
mode.</description>
        <name>ViewPage</name>
        <value>/WEB-INF/view/userRegistration.vm</value>
     </init-param>
      
      <init-param>
        <description>This option will generate a new password for each user
registration</description>
        <name>Option_Generate_Passwords</name>
        <value>false</value>
      </init-param> 
        
      <init-param>
        <description>This option will force email address to be system wide
unique</description>
        <name>Option_Emails_System_Unique</name>
        <value>true</value>
      </init-param>   
      <init-param>
        <description>This option will use the email address as the
username</description>
        <name>Option_Use_Email_As_Username</name>
        <value>true</value>
      </init-param> 

     <init-param>
        <description>This parameter sets the url to which folks will return
after they receive an email</description>
        <name>returnURL</name>
           <!--    the current system simply return the user to the 
default page
where this portlet provides feedback --> 
           <value>/</value>
     </init-param>   
     <init-param>
        <description>This parameter sets the URL to which people will go after
they successfully complete their form for forgotten password</description>
        <name>redirectPath</name>
             <!-- the current system simply return the user to the 
default page
where this portlet provides feedback -->
        <value>/default-page.psml</value>
     </init-param>   

      <init-param>
        <description>This is the template in which you setup an email 
to be sent
after user exists</description>
        <name>emailTemplateLocation</name>
        <value>/WEB-INF/view/</value>
      </init-param> 
      
      <init-param>
        <description>This is the template in which you setup an email
 to be sent
after user exists</description>
        <name>emailTemplateName</name>
        <value>userRegistrationEmail.vm</value>
      </init-param>     
      
 <portlet-name>MyRegisterUser</portlet-name>
    <display-name>Register User Portlet</display-name>
    <description>Enable new users to register with portal</description>
    <portlet-class>com.test.RegisterUser</portlet-class>
    <resource-bundle>com.test.RegisterUserResource</resource-bundle>
    <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>User Registration </title>
      <short-title>User Registration</short-title>
      <keywords>password, register, signup, new user </keywords>
    </portlet-info>
        <security-role-ref>
      <role-name>Administrator</role-name>
      <role-link>admin</role-link>
    </security-role-ref>
  </portlet>
</portlet-app>

jetspeed-portlet.xml
--------------------

<portlet-app id="PTest2" version="1.0"
    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd";
    xmlns:js="http://portals.apache.org/jetspeed";
    xmlns:dc="http://www.purl.org/dc";>

    <dc:title>My Portlets</dc:title>
    <dc:title xml:lang="en">My Portlets</dc:title>
    <dc:creator>me</dc:creator>


    <portlet>
        <portlet-name>MyRegisterUser</portlet-name>
        <dc:title>MyRegisterUser Portlet</dc:title>
        <dc:creator>me</dc:creator>
    </portlet>

        <js:services>            
        <js:service name='PortalAdministration'/>              
        <js:service name='UserManager'/>        
        </js:services>
        
</portlet-app>


Can anybody help me to find what is going here?

Thanks,
Chamila


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to