[jboss-user] [JBoss Seam] - Cannot get @In and @Out to work with a stateless component
Basel
do-not-reply at jboss.com
Fri Jul 28 07:17:02 EDT 2006
I have an Entity bean called PaperDetails and a page called newartwork.jsf which can be used to create a new PaperDetails.
| @Entity(name="gs_paper_details")
| public class PaperDetails implements Serializable{
| @Id
| private int id;
|
| @NotNull
| private String title;
| }
|
| <form action="uploaded.jsf" method="post" enctype="multipart/form-data">
| <h:inputText id="title" value="#{newPaperDetails.title}"/>
| <input type="submit" value="Upload Files"/>
| </form>
|
There is a page action under pages.xml that is used to create the newPaperDetails component:
| <page view-id="/newartwork.jsf" action="#{fileUploadAction.initPaperDetails}"/>
|
The FileUploadAction component is used to create and outject the newPaperDetails component. Also, it handles the upload action after the user enters the data of the new PaperDetails in the newartwork.jsf page.
| <page view-id="/uploaded.jsf" action="#{fileUploadAction.upload}"/>
|
| @Name("fileUploadAction")
| @Scope(ScopeType.STATELESS)
| public class FileUploadAction{
| //@In(required=false)
| @In(required=false, value="newPaperDetails")
| @Out(value="newPaperDetails")
| private PaperDetails paperDetails;
|
| public void initPaperDetails(){
| log.info("Creating a new paperDetails-120");
| paperDetails = new PaperDetails();
| if(paperDetails == null)
| log.info("initPaperDetails[papreDetails is null]");
| }
|
| public String upload(){
| this.initComponent();
|
| if(paperDetails == null){
| log.info("upload[papreDetails is null]");
| return null;
| }
| }
| }
|
However, the newPaperDetails is gone and its value is set to null when I try to upload a new artwork. This causes the @Out annotation to complain as shown in stack trace below:
| StackTrace after accessing the newartwork.jsf page:
| 13:59:21,920 INFO [Pages] reading pages.xml
| 13:59:22,200 INFO [FileUploadAction] Creating a new paperDetails-120
|
|
| StackTrace after calling the upload method:
| 13:59:56,270 INFO [FileUploadAction] upload[papreDetails is null]
| 13:59:56,270 INFO [FileUploadAction] PD is null
| 13:59:56,273 ERROR [STDERR] Jul 28, 2006 1:59:56 PM com.sun.faces.lifecycle.LifecycleImpl phase
| WARNING: phase(RENDER_RESPONSE 6,com.sun.faces.context.FacesContextImpl at 7ce229be) threw exception: javax.faces.el.EvaluationException: org.jboss.seam.RequiredException: Out attribute requires value for component: fileUploadAction.newPaperDetails org.jboss.seam.RequiredException: Out attribute requires value for component: fileUploadAction.newPaperDetails
| com.sun.faces.application.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:91)
| org.jboss.seam.core.Pages.callAction(Pages.java:161)
| org.jboss.seam.core.Pages.callAction(Pages.java:143)
| org.jboss.seam.jsf.AbstractSeamPhaseListener.callPageActions(AbstractSeamPhaseListener.java:128)
| org.jboss.seam.jsf.AbstractSeamPhaseListener.beforeRender(AbstractSeamPhaseListener.java:98)
| org.jboss.seam.jsf.SeamPhaseListener.beforePhase(SeamPhaseListener.java:50)
| org.jboss.seam.jsf.SeamExtendedManagedPersistencePhaseListener.beforePhase(SeamExtendedManagedPersistencePhaseListener.java:38)
| com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:249)
| com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:159)
| javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:30)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
| org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
| org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
| org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
| org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
| org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
| org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
| org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
| org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
| org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
| org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
| org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
| org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
| org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
| org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
| java.lang.Thread.run(Thread.java:595)
| 13:59:56,311 INFO [SeamExceptionFilter] killing transaction
|
I even tried to use the getInstance method of the Component class but with no luck.
| public String upload(){
| PaperDetails pd = (PaperDetails)Component.getInstance("newPaperDetails");
| if(pd == null){
| log.info("PD is null");
| }
| }
|
I tried to used different scope types for the newPaperDetails component but with no avail. I would truly appreciate your help guys.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3961532#3961532
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3961532
More information about the jboss-user
mailing list