I did as you suggested and made a very simple example. Now I get this exception:
"does not contain Objects of type SelectItem" JSF: | <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> | <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> | | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> | <f:view> | <f:loadBundle basename="messages" var="msg"/> | <head> | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> | <title> | <h:outputText value="#{msg.Create} #{msg.Person}" rendered="#{personEditor.new}"/> | <h:outputText value="#{msg.Update}/#{msg.Delete} #{msg.Person}" rendered="#{!personEditor.new}"/> | </title> | <style type="text/css" media="all"> | @import "style/default/screen.css"; | </style> | </head> | <body> | | <%@ include file="header.htm" %> | | <h:form> | | <div class="rvgFind"> | <fieldset class="rvgFieldSet"> | <legend><h:outputText value="#{msg.Person} #{msg.Attributes}"/></legend> | | <span class="rvgInputs"> | <span class="rvgMeassage"><h:messages globalOnly="true"/></span> | | <h:selectOneMenu value="#{person.room}" converter="org.jboss.seam.EntityConverter"> | <f:selectItems value="#{rooms}" /> | </h:selectOneMenu> | | <span class="rvgActions"> | <h:commandButton type="submit" value="#{msg.Create}" action="#{roomService.create}" rendered="#{roomService.new}"/> | </span> | | </fieldset> | </div> | | </h:form> | | </body> | </f:view> | </html> | RoomService.java | package testSeam; | | // Generated Oct 6, 2006 12:55:26 AM by Hibernate Tools 3.2.0.beta7 | | import javax.ejb.Local; | | @Local | public interface RoomService { | public boolean isNew(); | | public void setNew(boolean isNew); | | public Room getRoom(); | | public void setRoom(Room room); | | public void setDoneOutcome(String outcome); | | public String update(); | | public String delete(); | | public String create(); | | public String done(); | | public void buildRooms(); | } | | RoomServiceBean.java | package testSeam; | | // Generated Oct 6, 2006 12:55:26 AM by Hibernate Tools 3.2.0.beta7 | | import java.util.Map; | import java.util.List; | import javax.ejb.Remove; | import javax.ejb.Stateless; | import javax.ejb.Stateful; | import javax.ejb.TransactionAttribute; | import static javax.ejb.TransactionAttributeType.NOT_SUPPORTED; | import javax.faces.application.FacesMessage; | import javax.faces.context.FacesContext; | import javax.interceptor.Interceptors; | import javax.persistence.EntityManager; | | import org.jboss.seam.annotations.Begin; | import org.jboss.seam.annotations.Destroy; | import org.jboss.seam.annotations.End; | import org.jboss.seam.annotations.IfInvalid; | import org.jboss.seam.annotations.In; | import org.jboss.seam.annotations.Out; | import org.jboss.seam.annotations.Name; | import org.jboss.seam.annotations.Outcome; | import org.jboss.seam.annotations.Logger; | import org.jboss.seam.annotations.Factory; | | import org.jboss.seam.ejb.SeamInterceptor; | import org.jboss.seam.log.Log; | import org.jboss.seam.selectitems.annotations.SelectItems; | | import org.hibernate.validator.Valid; | | @Name("roomService") | @Stateless | @Interceptors(SeamInterceptor.class) | public class RoomServiceBean implements RoomService { | | @Logger | private Log log; | | @In(create = true) | private EntityManager entityManager; | | @Valid | private Room room = new Room(); | | private String doneOutcome = "find"; | | @In(required = false) | private transient RoomFinder roomFinder; | | @In(create = true) | private transient Map messages; | | private boolean isNew = true; | | @SelectItems(label="description", addNoSelectionLabel="Please select a room") | private List<Room> rooms; | | @TransactionAttribute(NOT_SUPPORTED) | public Room getRoom() { | return room; | } | | public void setRoom(Room room) { | this.room = room; | } | | @TransactionAttribute(NOT_SUPPORTED) | public boolean isNew() { | return isNew; | } | | public void setNew(boolean isNew) { | this.isNew = isNew; | } | | public void setDoneOutcome(String outcome) { | doneOutcome = outcome; | } | | @SuppressWarnings("unchecked") | @Factory("rooms") | public void buildRooms() { | rooms = entityManager.createQuery("select rm from Room rm").getResultList(); | log.info("Room list has " + rooms.size() + " entries"); | } | | @Begin(join = true) | @IfInvalid(outcome = Outcome.REDISPLAY) | public String create() { | if (entityManager.find(Room.class, room.getId()) != null) { | FacesContext.getCurrentInstance().addMessage( | null, | new FacesMessage(messages.get("Room_id") + " " | + messages.get("AlreadyExists"))); | return null; | } | entityManager.persist(room); | isNew = false; | refreshFinder(); | return "editRoom"; | } | | @IfInvalid(outcome = Outcome.REDISPLAY) | public String update() { | refreshFinder(); | return null; | } | | @End(ifOutcome = "find") | public String delete() { | entityManager.remove(room); | refreshFinder(); | return doneOutcome; | } | | @End(ifOutcome = "find") | public String done() { | if (!isNew) | entityManager.refresh(room); | return doneOutcome; | } | | private void refreshFinder() { | if (roomFinder != null) | roomFinder.refresh(); | } | } | | Here is the full exception trace: | 22:06:30,155 INFO [RoomServiceBean] Room list has 3 entries | 22:06:30,162 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception | java.lang.IllegalArgumentException: Collection referenced by UISelectItems with binding '#{rooms}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /uQuickPersonAdd.jsp][Class: javax.faces.component.html.HtmlForm,Id: _id2][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id5][Class: javax.faces.component.UISelectItems,Id: _id6]} does not contain Objects of type SelectItem | at org.apache.myfaces.util.SelectItemsIterator.next(SelectItemsIterator.java:182) | at org.apache.myfaces.renderkit.RendererUtils.internalGetSelectItemList(RendererUtils.java:487) | at org.apache.myfaces.renderkit.RendererUtils.getSelectItemList(RendererUtils.java:461) | at org.apache.myfaces.renderkit.html.HtmlRendererUtils.internalRenderSelect(HtmlRendererUtils.java:272) | at org.apache.myfaces.renderkit.html.HtmlRendererUtils.renderMenu(HtmlRendererUtils.java:246) | at org.apache.myfaces.renderkit.html.HtmlMenuRendererBase.encodeEnd(HtmlMenuRendererBase.java:54) | at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:331) | at javax.faces.webapp.UIComponentTag.encodeEnd(UIComponentTag.java:349) | at javax.faces.webapp.UIComponentTag.doEndTag(UIComponentTag.java:253) | at org.apache.jsp.uQuickPersonAdd_jsp._jspx_meth_h_selectOneMenu_0(uQuickPersonAdd_jsp.java:363) | at org.apache.jsp.uQuickPersonAdd_jsp._jspx_meth_h_form_0(uQuickPersonAdd_jsp.java:284) | at org.apache.jsp.uQuickPersonAdd_jsp._jspx_meth_f_view_0(uQuickPersonAdd_jsp.java:179) | at org.apache.jsp.uQuickPersonAdd_jsp._jspService(uQuickPersonAdd_jsp.java:87) | at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) | at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) | at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) | at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415) | at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) | at org.jboss.seam.jsf.SeamViewHandler.renderView(SeamViewHandler.java:59) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | 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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | at java.lang.Thread.run(Thread.java:613) | 22:06:30,207 ERROR [SeamExceptionFilter] uncaught exception handled by Seam | javax.servlet.ServletException: Collection referenced by UISelectItems with binding '#{rooms}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /uQuickPersonAdd.jsp][Class: javax.faces.component.html.HtmlForm,Id: _id2][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id5][Class: javax.faces.component.UISelectItems,Id: _id6]} does not contain Objects of type SelectItem | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:121) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | 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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | at java.lang.Thread.run(Thread.java:613) | 22:06:30,230 INFO [SeamExceptionFilter] killing transaction | 22:06:30,257 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception | javax.faces.FacesException: Collection referenced by UISelectItems with binding '#{rooms}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /uQuickPersonAdd.jsp][Class: javax.faces.component.html.HtmlForm,Id: _id2][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id5][Class: javax.faces.component.UISelectItems,Id: _id6]} does not contain Objects of type SelectItem | at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:421) | at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:234) | at org.jboss.seam.jsf.SeamViewHandler.renderView(SeamViewHandler.java:59) | at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:352) | at javax.faces.webapp.FacesServlet.service(FacesServlet.java:107) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) | at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) | at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175) | at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) | at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) | at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) | 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.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) | at java.lang.Thread.run(Thread.java:613) | Caused by: org.apache.jasper.JasperException: Collection referenced by UISelectItems with binding '#{rooms}' and Component-Path : {Component-Path : [Class: javax.faces.component.UIViewRoot,ViewId: /uQuickPersonAdd.jsp][Class: javax.faces.component.html.HtmlForm,Id: _id2][Class: javax.faces.component.html.HtmlSelectOneMenu,Id: _id5][Class: javax.faces.component.UISelectItems,Id: _id6]} does not contain Objects of type SelectItem | at org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:510) | at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:393) | at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) | at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) | at javax.servlet.http.HttpServlet.service(HttpServlet.java:810) | at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) | at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) | at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672) | at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:463) | at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:398) | at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:301) | at org.apache.myfaces.context.servlet.ServletExternalContextImpl.dispatch(ServletExternalContextImpl.java:415) | ... 25 more | I'm beginning to wonder if I'll ever get this going. This should be a very simple screen. Does it get easier? I'm getting super discouraged learning Seam. I believe it offers much.. but I need encouragement. View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3981574#3981574 Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3981574 _______________________________________________ jboss-user mailing list [email protected] https://lists.jboss.org/mailman/listinfo/jboss-user
