[jboss-user] [JBoss Seam] - Problem calling SFSB

diablo341 do-not-reply at jboss.com
Thu Nov 16 11:23:32 EST 2006


I'm stuck and need help.  I've got a simple page that has a panelGrid backed by an entity bean.  When the page first loads, i'm assuming the entity bean is created (in the request context) and the default values are displayed.  I have a commandButton that calls a method on my SFSB to retrieve a particular entity.  The entity is annotated with @Out, but my page reloads with the same default values.  How do I know the SFSB is even being called?  I see that it's loaded during startup via the deployment scanner.  I've been banging my head since last night.

Entity bean:
package com.myco.workforce;
  | 
  | import java.io.Serializable;
  | import java.util.Date;
  | 
  | import javax.persistence.*;
  | 
  | import org.jboss.seam.annotations.Name;
  | 
  | @Entity
  | @Name("revModel")
  | @Table(name="RevenuePlanningModel", uniqueConstraints = {@UniqueConstraint(columnNames={"profitCenterId","startingQuarter","startingYear"})})
  | public class RevenuePlanningModel implements Serializable {
  | 	private long id;
  | 	private long sapProfilingId;
  | 	private Date lastModified;
  | 	private String profitCenterId;
  | 	private short startingQuarter;
  | 	private short startingYear;
  | 	private long plannedPersonnelPriorYear = 41560l;
  | 	private long plannedPersonnel1 = 10000l;
  | 	private long plannedPersonnel2;
  | 	private long plannedPersonnel3;
  | 	private long plannedPersonnel4;
  | 	private long plannedPersonnel5;
  | 	private long plannedPersonnel6;
  | 	private double revenuePriorYear = 12158412;
  | 	private double revenue1;
  | 	private double revenue2;
  | 	private double revenue3;
  | 	private double revenue4;
  | 	private double revenue5;
  | 	private double revenue6;
SFSB:
package com.myco.workforce;
  | 
  | import static javax.persistence.PersistenceContextType.EXTENDED;
  | 
  | import javax.ejb.Remove;
  | import javax.ejb.Stateful;
  | import javax.persistence.EntityManager;
  | import javax.persistence.PersistenceContext;
  | 
  | import org.jboss.seam.annotations.Begin;
  | import org.jboss.seam.annotations.Destroy;
  | import org.jboss.seam.annotations.End;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Logger;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.annotations.Out;
  | import org.jboss.seam.core.Events;
  | import org.jboss.seam.core.FacesMessages;
  | import org.jboss.seam.log.Log;
  | 
  | @Stateful
  | @Name("revPlan")
  | //@LoggedIn
  | public class RevenuePlanningAction implements RevenuePlanning {
  | 
  | 	@PersistenceContext(type=EXTENDED)
  |    private EntityManager em;
  |    
  |    /*
  |    @In 
  |    private User user;
  |    */
  |    
  |    @In(required=false) @Out
  |    private RevenuePlanningModel revModel;
  |    
  |    @In(create=true)
  |    private FacesMessages facesMessages;
  |       
  |    @In(create=true)
  |    private Events events;
  |    
  |    @Logger 
  |    private Log log;
  |    
  |    @Begin
  |    public void getRevenuePlanningModel() {
  | 	   revModel = (RevenuePlanningModel) em.createQuery(
  | 			   "select r from revenueplanningmodel r where r.id=:id")
  | 			   .setParameter("id", 1)
  | 			   .getSingleResult();
  |       //revModel = em.find(RevenuePlanningModel.class, 1);
  |    }
  |    
  |    @End
  |    public String saveRevenuePlanningModel() {
  |       em.persist(revModel);
  |    }
  | 
  |    @End
  |    public String deleteRevenuePlanningModel() {
  |       return null;
  |    }
  |    
  |    @End
  |    public String cancel() {
  |       return null;
  |    }
xhtml page:
	<div class="section">
  | 		<h:form>
  | 		<h:panelGrid columns="9">
  | 			<h:outputLabel styleClass="entry">
  | 				<h:outputText value=""/>
  | 				</h:outputLabel>
  | 			<h:outputLabel styleClass="entry">
  | 				<h:outputText value="PY"/>
  | 			</h:outputLabel>
  | 			<h:outputLabel styleClass="entry">
  | 				<h:outputText value="Q1"/>
  | 			</h:outputLabel>
  | 			<h:outputLabel styleClass="entry">
  | 				<h:outputText value="Q2"/>
  | 			</h:outputLabel>
  | <h:outputText value="Planned Personnel"/>
  | 			<h:outputText value="#{revModel.plannedPersonnelPriorYear}">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:outputText>
  | 			<h:inputText id="plannedPersonnel1" value="#{revModel.plannedPersonnel1}" required="true">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:inputText>
  | 			<h:inputText id="plannedPersonnel2" value="#{revModel.plannedPersonnel2}" required="true">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:inputText>
  | <h:outputText value="Revenue"/>
  | 			<h:inputText id="revenuePriorYear" value="#{revModel.revenuePriorYear}" required="true">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:inputText>
  | 			<h:inputText id="revenue1" value="#{revModel.revenue1}" required="true">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:inputText>
  | 			<h:inputText id="revenue2" value="#{revModel.revenue2}" required="true">
  | 				<f:convertNumber pattern="#,###,##0"/>
  | 			</h:inputText>
  | </h:panelGrid>
  | 			<div class="entry errors">
  | 				<h:messages globalOnly="true"/>
  | 			</div>
  | 			<div class="input">
  | 				<h:commandButton value="Proceed" action="#{revPlan.getRevenuePlanningModel}" class="button"/> 
  | 				<h:commandButton value="Save" action="#{revPlan.saveRevenuePlanningModel}" class="button"/>
  | 			</div>
  | 		</h:form>
  | 	</div>
Note, I'm working off of the Booking app example, so my setup is sound and I'm using a lot of existing framework.

I appreciate the help.

John

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

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




More information about the jboss-user mailing list