6 Replies Latest reply on Feb 20, 2007 3:09 AM by laksu

    outject problem

    laksu

      I already (http://www.jboss.com/index.html?module=bb&op=viewtopic&t=101517) had asked this in this forum and I could not solve the problem yet. Here I have downsized my dummy app to even simpler and it still cannot outject. I must be missing or misunderstanding something fundamental.

      I have the entity bean Organization:

      @Entity
      @Name("organization")
      public class Organization implements Serializable {
      
       @TableGenerator(name="organizationGenerator")
       @Id
       @GeneratedValue(strategy=GenerationType.TABLE,generator="organizationGenerator")
       private Long id;
      
       private String name;
       private String description,address;
       private boolean deleted=false;
      
       @Temporal(TemporalType.DATE)
       private Date startUpDate;
       public Organization() {
       name="unnamed";
       }
      
       public Long getId() {
       return this.id;
       }
      
       public void setId(Long id) {
       this.id = id;
       }
      
       @Override
       public int hashCode() {
       int hash = 0;
       hash += (this.id != null ? this.id.hashCode() : 0);
       return hash;
       }
      
       @Override
       public boolean equals(Object object) {
       // TODO: Warning - this method won't work in the case the id fields are not set
       if (!(object instanceof Organization)) {
       return false;
       }
       Organization other = (Organization)object;
       if (this.id != other.id && (this.id == null || !this.id.equals(other.id))) return false;
       return true;
       }
      
       @Override
       public String toString() {
       return "[id=" + id + ":"+ name +"]";
       }
      
      ... standart getters and setters follow ...
      


      A stateful session bean

      @Stateful
      @Name("testAction")
      public class TestActionBean implements TestActionLocal {
      
       @Out
       Organization organization;
      
       public TestActionBean() {}
      
       @Begin
       public String go(){
       organization=new Organization();
       organization.setName("Tester");
       return "org";
       }
      
       @End
       public String stop(){
       return "test";
       }
      
       @Remove @Destroy
       void destroy(){}
      }


      one initial page, only for calling the action bean:

      test.xhtml
      <?xml version='1.0' encoding='UTF-8' ?>
      <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       template="listTemplate.xhtml">
      
       <ui:define name="content">
       <h:form>
       <h:commandButton value="Go" action="#{testAction.go}" />
       </h:form>
       </ui:define>
      
      </ui:composition>
      


      and another one that is navigated when "org" is returned:

      org.xhtml
      <!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <ui:composition xmlns="http://www.w3.org/1999/xhtml"
       xmlns:ui="http://java.sun.com/jsf/facelets"
       xmlns:h="http://java.sun.com/jsf/html"
       xmlns:f="http://java.sun.com/jsf/core"
       template="listTemplate.xhtml" >
      
       <ui:define name="content">
       <h:form>
       <h:outputLabel value="Name:" /> <h:inputText value="#{organization.name}"/>
       </h:form>
       </ui:define>
      
      
      </ui:composition>

      I construct a new "Organization" at the method "go" and set its "name" property to "tester". I expect it to show up in the "org.xhtml", but instead "unnamed" shows up, which is assigned in the default constructor of "Organization". The instance I assigned at the "go" method is ignored and another instance is outjected.
      Where am I wrong?
      Regards,
      Levent