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]