Problems with myfaces - ClassCastException JbossActionReques
commy Sep 6, 2006 8:07 PMHi there!
i've got a problem with my myfaces portlet.
With the following set of files, i can add resources, but when i click on Edit, i get the following Exception:
Here's the bean, called Resource.java
/* * Resource.java * * Created on September 4, 2006, 9:58 PM * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package iro.model; import java.io.Serializable; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Basic; /** * * @author root */ @Entity public class Resource implements Serializable { @Id @GeneratedValue(strategy = GenerationType.AUTO) private Long id; @Basic private String name; @Basic private String description; /** Creates a new instance of Resource */ public Resource() { } public String getName(){ return this.name; } public void setName(String newName){ this.name = newName; } public String getDescription(){ return this.description; } public void setDescription(String newDescription){ this.description = newDescription; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String toString() { //TODO change toString() implementation to return a better display name return "" + this.id; } }
here are the jsf files...
Detail.jsf
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Detail of Resource</title> </head> <f:view> <h:messages style="color: green" layout="table"/> <h1>Detail of resource</h1> <h:form> <h:panelGrid columns="2"> <h:outputText>Name:</h:outputText> <h:outputText value="#{resource.resource.name}" title="Name" /> <h:outputText>Description:</h:outputText> <h:outputText value="#{resource.resource.description}" title="Description" /> <h:outputText>Id:</h:outputText> <h:outputText value="#{resource.resource.id}" title="Id" /> </h:panelGrid> <h:commandLink action="#{resource.editSetup}"> <f:param name="id" value="#{resource.resource.id}"/> <h:outputText value="Edit"/> </h:commandLink> <br> <h:commandLink action="resource_list" value="Show All Resource"/> <br> <a href="/WebApplication11/index.jsp">Back to index</a> </h:form> </f:view>
Edit.jsf
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>Edit Resource</title> </head> <f:view> <h:messages style="color: green" layout="table"/> <h1>Edit resource</h1> <h:form> <h:panelGrid columns="2"> <f:verbatim>Name</f:verbatim> <h:inputText id="name" value="#{resource.resource.name}" title="Name" /> <f:verbatim>Description</f:verbatim> <h:inputText id="description" value="#{resource.resource.description}" title="Description" /> </h:panelGrid> <h:commandLink action="#{resource.edit}" value="Save"/> <br> <h:commandLink action="resource_list" value="Show All Resource"/> <br> <a href="/WebApplication11/index.jsp">Back to index</a> </h:form> </f:view>
List.jsf
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>List Resource</title> </head> <f:view> <h:messages style="color: green" layout="table"/> <h1>Listing Resources</h1> <h:form> <h:dataTable value='#{resource.resources}' var='item' border="1" cellpadding="2" cellspacing="0"> <h:column> <f:facet name="header"> <h:outputText value="Name"/> </f:facet> <h:outputText value="#{item.name}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Description"/> </f:facet> <h:outputText value="#{item.description}"/> </h:column> <h:column> <f:facet name="header"> <h:outputText value="Id"/> </f:facet> <h:commandLink action="#{resource.detailSetup}"> <f:param name="id" value="#{item.id}"/> <h:outputText value="#{item.id}"/> </h:commandLink> </h:column> <h:column> <h:commandLink action="#{resource.destroy}"> <f:param name="id" value="#{item.id}"/> <h:outputText value='Destroy'/> </h:commandLink> <h:outputText value=" "/> <h:commandLink action="#{resource.editSetup}" value="Edit"> <f:param name="id" value="#{item.id}"/> </h:commandLink> </h:column> </h:dataTable> <h:commandLink action="#{resource.createSetup}"> <h:outputText value="New Resource"/> </h:commandLink> <br> <a href="/WebApplication11/index.jsp">Back to index</a> </h:form> </f:view>
New.jsf
<%@page contentType="text/html"%> <%@page pageEncoding="UTF-8"%> <%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <title>New Resource</title> </head> <f:view> <h:messages style="color: green" layout="table"/> <h1>New resource</h1> <h:form> <h:panelGrid columns="2"> <f:verbatim>Name</f:verbatim> <h:inputText id="name" value="#{resource.resource.name}" title="Name" /> <f:verbatim>Description</f:verbatim> <h:inputText id="description" value="#{resource.resource.description}" title="Description" /> </h:panelGrid> <h:commandLink action="#{resource.create}" value="Create"/> <br> <h:commandLink action="resource_list" value="Show All Resource"/> <br> <a href="/WebApplication11/index.jsp">Back to index</a> </h:form> </f:view>
Here's the faces-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd"> <!-- =========== FULL CONFIGURATION FILE ================================== --> <faces-config xmlns="http://java.sun.com/JSF/Configuration"> <converter> <converter-for-class>iro.model.Resource</converter-for-class> <converter-class>iro/controller.ResourceConverter</converter-class> </converter> <managed-bean> <managed-bean-name>resource</managed-bean-name> <managed-bean-class>iro.controller.ResourceController</managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> <navigation-rule> <from-view-id>/iro.view/resource/*</from-view-id> <navigation-case> <from-outcome>resource_create</from-outcome> <to-view-id>/iro.view/resource/New.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>resource_list</from-outcome> <to-view-id>/iro.view/resource/List.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>resource_edit</from-outcome> <to-view-id>/iro.view/resource/Edit.jsp</to-view-id> </navigation-case> <navigation-case> <from-outcome>resource_detail</from-outcome> <to-view-id>/iro.view/resource/Detail.jsp</to-view-id> </navigation-case> </navigation-rule> <lifecycle/> <application> <locale-config/> </application> <factory/> </faces-config>
the portlet.xml
<?xml version="1.0" encoding="UTF-8"?> <portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd /opt/SUNWps/dtd/portlet.xsd" version="1.0"> <!-- RESOURCE PORTLET --> <portlet> <portlet-name>IroResourcePortlet</portlet-name> <portlet-class>org.apache.myfaces.portlet.MyFacesGenericPortlet</portlet-class> <init-param> <name>default-view</name> <value>/iro.view/resource/List.jsp</value> </init-param> <supports> <mime-type>text/html</mime-type> <portlet-mode>VIEW</portlet-mode> </supports> <portlet-info> <title>IroResourcePortlet</title> </portlet-info> </portlet> </portlet-app>
and here's the web.xml
<?xml version="1.0" encoding="UTF-8"?> <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"> <listener> <listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class> </listener> </web-app>
i already tried to add a jsf mapping to the web.xml, but it didn't work.
Caused by: java.lang.ClassCastException: org.jboss.portlet.JbossActionRequest cannot be cast to javax.servlet.http.HttpServletRequest
can anyone help me?
greetings markus