Hi there

I'm experimenting a bit with seam, but I'm currently stuck on this issue...

I building a simple questionaire page; one has a list of questions with radio 
answers.

In order to display answers like:


  |             <h:column>
  |             <f:facet name="Answer">
  |             <h:outputText value="Answers"/>
  |             </f:facet>
  |             <h:selectOneRadio value="#{question.selectedAnswer}" 
converter="#{ansbean.converter}">
  |             <f:selectItems value="#{question.answerMap}" />
  |             </h:selectOneRadio>
  |             </h:column>
  | 

I had to write a converter bean, along the lines of the one in the dvd store 
example. This is basically


  | 
  | @Stateful
  | @Name("ansbean")
  | @Scope(ScopeType.APPLICATION)
  | @Interceptors(SeamInterceptor.class)
  | public class AnswersBean implements Answers {
  | 
  |     Logger log = Logger.getLogger(Register.class);
  |     List<Answer> answers;
  |     Map<String, Answer> answersMap;
  | 
  |     @PersistenceContext(type=EXTENDED)
  |     EntityManager em;
  | 
  |     @Create
  |     public void loadData(){
  |       //load some stuff from db
  |     }
  |     public Converter getConverter() {
  |         return new AnswerConverter(em);
  |     }
  | 
  |     static public class AnswerConverter implements Converter, Serializable {
  | 
  |         Logger log = Logger.getLogger(AnswerConverter.class);
  |         private EntityManager em;
  | 
  |         public AnswerConverter(EntityManager em) {
  |             this.em = em;
  |         }
  | 
  |         public Object getAsObject(FacesContext facesContext,
  |                                   UIComponent uiComponent,
  |                                   String value) throws ConverterException {
  | 
  |             if ((value == null) || value.length() == 0) {
  |                 return null;
  |             }
  | 
  |             log.info("INTO CONVERTER Asobject()");
  | 
  |             int id = Integer.valueOf(value).intValue();
  | 
  |             Answer ret = null;
  |             ret = (Answer) em.createQuery("from Answer where 
id=?").setParameter(0,id).getSingleResult();
  |             return ret;
  |         }
  | 
  |         public String getAsString(FacesContext facesContext,
  |                                   UIComponent uiComponent,
  |                                   Object object) throws ConverterException {
  |             if (object == null) return null;
  |           
  |             return String.valueOf(((Answer) object).getId());
  | 
  |         }
  |     }
  | }
  | 
  | 

In my Question entity bean (one to many relationship with Answer) I have
created an helper method like


  | 
  |     @Transient
  |     public Map<String, Answer> getAnswerMap(){
  |         Map<String, Answer> results = new TreeMap<String, Answer>();
  | 
  |         for (Answer answer : answers) {
  |             result.put(answer.getText(), answer);
  |         }
  | 
  |         answerMap = results;
  |         return answerMap;
  |     }
  | 
  | 


The page loads the questionaire fine, but when I submit it I get the following 
trace:


  | 
  | 11:32:32,734 ERROR [AnswersBean$AnswerConverter] 
java.lang.NullPointerException
  | 11:32:32,734 ERROR [STDERR] java.lang.NullPointerException
  | 11:32:32,735 ERROR [STDERR]     at 
org.jboss.ejb3.entity.ExtendedEntityManager.getPersistenceContext(ExtendedEntityManager.java:59)
  | 11:32:32,736 ERROR [STDERR]     at 
org.jboss.ejb3.entity.ExtendedEntityManager.createQuery(ExtendedEntityManager.java:129)
  | 11:32:32,736 ERROR [STDERR]     at 
org.jboss.seam.example.registration.AnswersBean$AnswerConverter.getAsObject(AnswersBean.java:104)
  | 11:32:32,736 ERROR [STDERR]     at 
org.apache.myfaces.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:658)
  | 11:32:32,736 ERROR [STDERR]     at 
org.apache.myfaces.renderkit.html.HtmlRadioRendererBase.getConvertedValue(HtmlRadioRendererBase.java:288)
  | 11:32:32,737 ERROR [STDERR]     at 
javax.faces.component.UIInput.getConvertedValue(UIInput.java:289)
  | 11:32:32,737 ERROR [STDERR]     at 
javax.faces.component.UIInput.validate(UIInput.java:265)
  | 11:32:32,737 ERROR [STDERR]     at 
javax.faces.component.UIInput.processValidators(UIInput.java:144)
  | 11:32:32,738 ERROR [STDERR]     at 
javax.faces.component.UIData.process(UIData.java:514)
  | 11:32:32,738 ERROR [STDERR]     at 
javax.faces.component.UIData.processColumnChildren(UIData.java:498)
  | 11:32:32,738 ERROR [STDERR]     at 
javax.faces.component.UIData.processValidators(UIData.java:403)
  | 11:32:32,738 ERROR [STDERR]     at 
javax.faces.component.UIForm.processValidators(UIForm.java:68)
  | 11:32:32,739 ERROR [STDERR]     at 
javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:417)
  | 11:32:32,739 ERROR [STDERR]     at 
javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:142)
  | 11:32:32,739 ERROR [STDERR]     at 
org.apache.myfaces.lifecycle.LifecycleImpl.processValidations(LifecycleImpl.java:240)
  | 11:32:32,740 ERROR [STDERR]     at 
org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
  | 11:32:32,740 ERROR [STDERR]     at 
javax.faces.webapp.FacesServlet.service(FacesServlet.java:106)
  | 11:32:32,740 ERROR [STDERR]     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
  | 11:32:32,740 ERROR [STDERR]     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 11:32:32,741 ERROR [STDERR]     at 
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
  | 11:32:32,741 ERROR [STDERR]     at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
  | 11:32:32,741 ERROR [STDERR]     at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
  | 11:32:32,742 ERROR [STDERR]     at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
  | 11:32:32,742 ERROR [STDERR]     at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
  | 11:32:32,742 ERROR [STDERR]     at 
org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54)
  | 11:32:32,743 ERROR [STDERR]     at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174)
  | 11:32:32,743 ERROR [STDERR]     at 
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
  | 11:32:32,743 ERROR [STDERR]     at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
  | 11:32:32,744 ERROR [STDERR]     at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
  | 11:32:32,744 ERROR [STDERR]     at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
  | 11:32:32,744 ERROR [STDERR]     at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
  | 11:32:32,745 ERROR [STDERR]     at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
  | 11:32:32,745 ERROR [STDERR]     at 
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
  | 11:32:32,746 ERROR [STDERR]     at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
  | 11:32:32,746 ERROR [STDERR]     at 
org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
  | 11:32:32,746 ERROR [STDERR]     at java.lang.Thread.run(Unknown Source)
  | 
  | 
  | 

While the page that I'm trying to render contains:


  | 
  | <h:dataTable var="question" value="#{questions}" 
rendered="#{questions.rowCount>0}">
  | <h:column>
  |            <f:facet name="Question">
  |               <h:outputText value="Question text"/>
  |            </f:facet>
  |            <h:outputText value="#{question.text}" />
  |         </h:column>
  |     <h:column>
  |         <f:facet name="Answer">
  |             <h:outputText value="Answers"/>
  |         </f:facet>
  |         <h:outputText value="#{question.selectedAnswer}"/>
  |     </h:column>
  | 
  |     </h:dataTable>
  | 
  | 

Initially I had no EXTENDED PersistenceContextType but I had a similar 
NullPointerException in ManagedEntityManagerFactory.getNonTxEntityManager()

Does this have something to do with that on the second page there's no 
reference to ansbean?

Thanks in advance for any hint. I have to say that the seam model is somehow 
unclear to me yet...



View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3939159#3939159

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3939159


-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
JBoss-user mailing list
JBoss-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to