0 Replies Latest reply on Oct 14, 2011 12:52 AM by malini

    Seam Search

    malini

      Hi All,


      I'm using seam 2.0.1 and  Jboss-4.2.0
      I have following issue in my search page.
      When I'm going to search from Customer or Product , it gives me following error on JBOSS




      09:33:27,471 WARN  [lifecycle] /M150spaceAllocationList.xhtml @31,90 value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}": Target Unreachable, 'm168custsup' returned null on 'org.dms.oilbank.entity.M150spaceAllocation'
      javax.el.PropertyNotFoundException: /M150spaceAllocationList.xhtml @31,90 value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}": Target Unreachable, 'm168custsup' returned null on 'org.dms.oilbank.entity.M150spaceAllocation'
      ....



      This is my xhtml page




      <rich:simpleTogglePanel label="Space Allocation Search"
                          switchType="ajax">
      
                          <s:decorate template="layout/display.xhtml">
                               <ui:define name="label">Space Allocation ID</ui:define>
      
                               <h:selectOneMenu id="spaceAllocationId"
                                    value="#{m150spaceAllocationList.m150spaceAllocation.id.spaceAllocationId}">
                                    <f:selectItem itemLabel="Select Space Allocation ID" itemValue="" />
                                    <f:selectItems value="#{populateAction.spaceAllowList}" />
                               </h:selectOneMenu>
                          </s:decorate>
      
                          <s:decorate template="layout/display.xhtml">
                               <ui:define name="label">Customer</ui:define>
                               <h:selectOneMenu id="cust"
                                    value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}">
                                    <f:selectItem itemLabel="Select Customer" itemValue="" />
                                    <f:selectItems value="#{populateAction.custNameList}" />
                               </h:selectOneMenu>
                          </s:decorate>
      
      
                          <s:decorate template="layout/display.xhtml">
                               <ui:define name="label">Product</ui:define>
                               <h:selectOneMenu id="productLname"
                                    value="#{m150spaceAllocationList.m150spaceAllocation.m150products.id.productId}">
                                    <f:selectItem itemLabel="Select Product" itemValue="" />
                                    <f:selectItems value="#{populateAction.productNameList}" />
                               </h:selectOneMenu>
                          </s:decorate>
      
                          <s:decorate template="layout/display.xhtml">
                               <ui:define name="label">BL No</ui:define>
                               <h:inputText id="blNo"
                                    value="#{m150spaceAllocationList.m150spaceAllocation.blNo}" />
                          </s:decorate>
      
      
                          <s:decorate template="layout/display.xhtml">
                               <ui:define name="label">Vessel Name</ui:define>
                               <h:inputText id="vessal"
                                    value="#{m150spaceAllocationList.m150spaceAllocation.vessal}" />
                          </s:decorate>
      
                     </rich:simpleTogglePanel>



      And this is my m150spaceAllocation Entity class




      @Entity
      @Table(name = "M150SPACE_ALLOCATION")
      public class M150spaceAllocation implements java.io.Serializable {
      
           private M150spaceAllocationId id;
           private M168custsup m168custsup;
           private M150units m150units;
           private M150products m150products;
           private Date transacDate;
           private double transacSeqNumber;
           private String blNo;
           private String vessal;
           private double quantityRequested;
           
      ...
      
      @EmbeddedId
           @AttributeOverrides({
                     @AttributeOverride(name = "unit", column = @Column(name = "UNIT", nullable = false, precision = 2, scale = 0)),
                     @AttributeOverride(name = "spaceAllocationId", column = @Column(name = "SPACE_ALLOCATION_ID", nullable = false, length = 25))})
           @NotNull
           public M150spaceAllocationId getId() {
                return this.id;
           }
      
           public void setId(M150spaceAllocationId id) {
                this.id = id;
           }
           @ManyToOne(fetch = FetchType.LAZY)
           @JoinColumns({
                     @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
                     @JoinColumn(name = "CUST_SUP_FLAG", referencedColumnName = "CUST_SUP_FLAG", nullable = false, insertable = false, updatable = false),
                     @JoinColumn(name = "CUSTOMER_CODE", referencedColumnName = "CUSTOMER_CODE", nullable = false, insertable = false, updatable = false)})
           @NotNull
           public M168custsup getM168custsup() {
                return this.m168custsup;
           }
      
           public void setM168custsup(M168custsup m168custsup) {
                this.m168custsup = m168custsup;
           }
           @ManyToOne(fetch = FetchType.LAZY)
           @JoinColumns({
                     @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
                     @JoinColumn(name = "UOM_ID", referencedColumnName = "UOM_ID", nullable = false, insertable = false, updatable = false),
                     @JoinColumn(name = "QUANTITY_UOM", referencedColumnName = "QTY_UOM", nullable = false, insertable = false, updatable = false)})
           @NotNull
           public M150units getM150units() {
                return this.m150units;
           }
      
           public void setM150units(M150units m150units) {
                this.m150units = m150units;
           }
           @ManyToOne(fetch = FetchType.LAZY)
           @JoinColumns({
                     @JoinColumn(name = "UNIT", referencedColumnName = "UNIT", nullable = false, insertable = false, updatable = false),
                     @JoinColumn(name = "PRODUCT_ID", referencedColumnName = "PRODUCT_ID", nullable = false, insertable = false, updatable = false)})
           @NotNull
           public M150products getM150products() {
                return this.m150products;
           }
      
           public void setM150products(M150products m150products) {
                this.m150products = m150products;
           }
           
           ....


      And here are the parameters which on list page XML




      <param name="vessal" value="#{m150spaceAllocationList.m150spaceAllocation.vessal}"/>
         <param name="productId" value="#{m150spaceAllocationList.m150spaceAllocation.m150products.id.productId}"/>
         <param name="customerCode" value="#{m150spaceAllocationList.m150spaceAllocation.m168custsup.id.customerCode}"/>
       <param name="spaceAllocationId" value="#{m150spaceAllocationList.m150spaceAllocation.id.spaceAllocationId}"/>
         <param name="blNo" value="#{m150spaceAllocationList.m150spaceAllocation.blNo}"/>



      pls give me a solution for this.