0 Replies Latest reply on Jul 15, 2007 5:28 AM by stef B

    Problem with conversation context.

    stef B Newbie

      Hi all, I can not understand conversation context.
      I have two pages, in first I select one vendor and in second I want to edit vendors name. In first page I start long running conversation in SFSB and create the vendor in @Out property, than transfer to second page. But this page can not find the vendor and create new. Also create and new session bean. Why !?
      That is source:
      first page where I start the conversation:

      <h:commandLink value="edit"
      action="#{vendorDetailAction.editSelectedVendor(vendor.idVendor)}">
      </h:commandLink>

      StateFull Session Bean is...

      @Stateful
      @Conversational()
      @Name("vendorDetailAction")
      @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
      public class VendorDetailAction implements VendorDetailManager, Serializable {

      @PersistenceContext(type = PersistenceContextType.EXTENDED)
      private EntityManager em;

      @In(create=true)
      @Out
      private Vendor vendor;

      @Begin
      public String editSelectedVendor(Long vendorId)
      {
      vendor = em.find(Vendor.class, vendorId);
      return "edit";
      }

      @End
      @Remove @Destroy
      @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
      public String detailConfirm() {
      vendor = null;
      return "success";
      }


      and second page can not find this outjected vendor.
      Hier is created new empty vendor.

      <h:inputText value="#{vendor.name}" id="vendorName" required="true"/>

      also second page can not find and SFSB
      and create new SFSB when click on this link

      <s:link action="#{questionDetailAction.createNewQuestion(vendor)}"
      value="#{msg.new_label}"/>
      Where is my mistake?
      Sorry for my english... and 10x