Getting Class cast exception while deploying portlet in Gatein 3.2.0 final release.
sk0032729 Sep 30, 2012 3:15 AMHi,
Here is problem description:
1. I created a new java portlet and try to deploy in gate in 3.2.0 and it was successful.
2. Then I tried doView() method to include a jsp file which used </defineObject> tag.
3. This portlet deployed successfully but during rendering of this portlet I got exception:
I am strugging from last 3 days about this exception but no success.
Please some one help me:
Exception:
================================================================================
12:36:43,381 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/DBC].[jsp]] Servlet.service() for servlet js
threw exception: java.lang.ClassCastException: org.gatein.pc.api.invocation.RenderInvocation cannot be cast to org.jboss.portal.
ortlet.invocation.PortletInvocation
at org.jboss.portal.portlet.impl.jsr168.taglib.PortletTag.getInvocation(PortletTag.java:219) [:2.0.0]
at org.jboss.portal.portlet.impl.jsr168.taglib.PortletTag.getDispatchedRequest(PortletTag.java:66) [:2.0.0]
at org.jboss.portal.portlet.impl.jsr168.taglib.PortletTag.getPortletRequest(PortletTag.java:72) [:2.0.0]
at org.jboss.portal.portlet.impl.jsr168.taglib.PortletTag.getRenderRequest(PortletTag.java:90) [:2.0.0]
at org.jboss.portal.portlet.impl.jsr286.taglib.DefineObjects286Tag.doEndTag(DefineObjects286Tag.java:57) [:2.0.0]
at org.apache.jsp.WEB_002dINF.jsp.MySqlToOracle_jsp._jspService(MySqlToOracle_jsp.java:66)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) [:6.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) [:6.0.0.Final]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326) [:6.0.0.Final]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:253) [:6.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:324) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:242) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:734) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:639) [:6.0.0.Final]
at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:576) [:6.0.0.Final]
at org.gatein.pc.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.dispatch(PortletRequestDispatcherImpl.java:155) [:2
3.1-Beta02]
at org.gatein.pc.portlet.impl.jsr168.api.PortletRequestDispatcherImpl.forward(PortletRequestDispatcherImpl.java:89) [:2.3
1-Beta02]
at com.dbconvertor.converter.MySqlToOracle.doView(MySqlToOracle.java:26) [:]
at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:328) [:]
at javax.portlet.GenericPortlet.render(GenericPortlet.java:233) [:]
at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl$Invoker.doFilter(PortletContainerImpl.java:569) [:2.3.1-Beta02]
at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:159) [:2.3.1-Beta02]
at org.exoplatform.portal.application.ApplicationMonitoringFilter.doFilter(ApplicationMonitoringFilter.java:77) [:3.2.0-G
]
at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:159) [:2.3.1-Beta02]
at org.gatein.pc.portlet.impl.jsr168.api.FilterChainImpl.doFilter(FilterChainImpl.java:80) [:2.3.1-Beta02]
at org.gatein.pc.portlet.impl.jsr168.PortletContainerImpl.dispatch(PortletContainerImpl.java:506) [:2.3.1-Beta02]
at org.gatein.pc.portlet.container.ContainerPortletDispatcher.invoke(ContainerPortletDispatcher.java:42) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.portlet.aspects.EventPayloadInterceptor.invoke(EventPayloadInterceptor.java:197) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.portlet.aspects.RequestAttributeConversationInterceptor.invoke(RequestAttributeConversationInterceptor.j
va:119) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.portlet.aspects.CCPPInterceptor.invoke(CCPPInterceptor.java:65) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.bridge.BridgeInterceptor.invoke(BridgeInterceptor.java:49) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.portlet.PortletInvokerInterceptor.invoke(PortletInvokerInterceptor.java:93) [:2.3.1-Beta02]
at org.gatein.pc.portlet.aspects.SessionInvalidatorInterceptor.invoke(SessionInvalidatorInterceptor.java:55) [:2.3.1-Beta
===========================================================================================
JSP FILE:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ page import="javax.portlet.*"%>
<%@taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%>
<portlet:defineObjects/>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<body>
Mysql to syabase
<br>
</body>
</html>
==============================================================================================
Java Class:
public void doView(RenderRequest request,RenderResponse response) throws PortletException,IOException { | ||
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
writer.write("MySqlToOracle:: Hello This is View Mode");
PortletContext ctx = getPortletContext();
request.setAttribute("one", "one");
PortletRequestDispatcher rd = ctx.getRequestDispatcher("/WEB-INF/jsp/MySqlToOracle.jsp"); | ||
rd.forward(request, response); |
}
================================================================
Potlet.xml file:
=============================================================
<portlet>
<portlet-name>MySqlToOracle</portlet-name>
<display-name>MySql To Oracle</display-name>
<portlet-class>com.dbconvertor.converter.MySqlToOracle</portlet-class>
<supports>
<mime-type>text/html</mime-type>
<portlet-mode>VIEW</portlet-mode>
<portlet-mode>EDIT</portlet-mode>
<portlet-mode>HELP</portlet-mode>
</supports>
<portlet-info>
<title>MySql To Oracle</title>
</portlet-info>
</portlet>
==================================================