0 Replies Latest reply on May 23, 2007 7:08 PM by Tony Herstell

    Component being dropped from list of Components in JNDI

    Tony Herstell Master

      NOTE: This is with IceFaces DR#4 but appears to be Seam bug or my code!


      10:48:08,937 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:ear=risingstars.ear,jar=risingstars_jar.jar,name=UploadControllerImpl,service=EJB3 with dependencies:



      10:48:12,859 INFO [Component] Component: uploadController, scope: CONVERSATION, type: STATEFUL_SESSION_BEAN, class: nz.co.risingstars.actions.upload.UploadControllerImpl, JNDI: risingstars/UploadControllerImpl/local



      Caused by: org.jboss.seam.InstantiationException: Could not instantiate Seam component: uploadController
      at org.jboss.seam.Component.newInstance(Component.java:1740)
      at org.jboss.seam.Component.getInstance(Component.java:1643)
      at org.jboss.seam.Component.getInstance(Component.java:1610)
      at org.jboss.seam.jsf.SeamVariableResolver.resolveVariable(SeamVariableResolver.java:53)
      at org.apache.myfaces.config.LastVariableResolverInChain.resolveVariable(LastVariableResolverInChain.java:42)
      at org.apache.myfaces.el.ValueBindingImpl$ELVariableResolver.resolveVariable(ValueBindingImpl.java:574)
      at org.apache.commons.el.NamedValue.evaluate(NamedValue.java:124)
      at org.apache.myfaces.el.ValueBindingImpl.getValue(ValueBindingImpl.java:383)
      ... 47 more
      Caused by: javax.naming.NameNotFoundException: UploadControllerImpl not bound
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
      at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
      at javax.naming.InitialContext.lookup(InitialContext.java:392)
      at org.jboss.seam.Component.instantiateSessionBean(Component.java:1107)
      at org.jboss.seam.Component.instantiate(Component.java:1093)
      at org.jboss.seam.Component.newInstance(Component.java:1736)
      ... 54 more
      10:48:55,765 ERROR [DebugPageHandler] redirecting to debug page
      javax.naming.NameNotFoundException: UploadControllerImpl not bound
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
      at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:270)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
      at javax.naming.InitialContext.lookup(InitialContext.java:392)
      at org.jboss.seam.Component.instantiateSessionBean(Component.java:1107)



      @SuppressWarnings("serial")
      @Stateful // A component stays in existance for the duration of the Scope (conversation in this instance).
      @Name("uploadController") // Name used within SEAM for an instance of this class.
      @Conversational // Scope that this class exists in.
      public class UploadControllerImpl implements UploadController, Renderable, Serializable {
      
       /**
       * The maximum width allowed for image rescaling
       */
       private static final int MAX_IMAGE_WIDTH = 1024;
      
       /**
       * Inject and leverage the Seam Logger.
       */
       @Logger
       private Log log;
      
       /**
       * Inject the EJB3 Persistance context in EXTENDED mode so will remain "current" over
       * multiple clinet/server round trips.
       */
       @PersistenceContext(type = EXTENDED)
       private EntityManager em;
      
       /**
       * Inject the Seam Conversation coponent so that I can report on it for logging purposes.
       */
       @In(required = false)
       private Conversation conversation;
      
       /**
       * Inject the Faces Messages component so that messages (errors and info) can be sent to the View
       */
       @In(create = true)
       private transient FacesMessages facesMessages;
      
       /**
       * Outject the Primary Key of the required Image
       */
       @SuppressWarnings("unused")
       @Out
       private Long picturePrimaryKey = new Long(-1);
      
       private enum ParentObjectKind {ORGANISATION, USER};
      
       @Out
       private ParentObjectKind parentObjectKind = null;
      
       private long parentObjectPrimaryKey;
      
       private int percent = -1;
      
       private PersistentFacesState state = null;
      
       private Image image = null;
      
       /**
       * An instance of the Inner Calss to support the progress.
       */
       private InnerProgressMonitor innerProgressMonitor;
      
       @Create // Is run whenever this bean is created.
       @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
       public void getFacesState() {
       innerProgressMonitor = new InnerProgressMonitor();
       state = PersistentFacesState.getInstance();
       }
      
       /* (non-Javadoc)
       * @see nz.co.risingstars.actions.upload.UploadController#startUpload(java.lang.Object)
       */
       @Begin
       @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
       public String startUpload(Object selectedObject) {
       log.info("> startUpload");
       image = null;
       String theValueToBeReturned = null;
       state = PersistentFacesState.getInstance();
       if (selectedObject instanceof Organisation) {
       parentObjectKind = ParentObjectKind.ORGANISATION;
       Organisation organisation = (Organisation)selectedObject;
       parentObjectPrimaryKey = organisation.getId();
       log.info("Organisation Id was => " + parentObjectPrimaryKey);
       if (organisation.getPicture() != null) {
       picturePrimaryKey = organisation.getPicture().getId();
       }
       theValueToBeReturned = "upload";
       } else if (selectedObject instanceof User) {
       parentObjectKind = ParentObjectKind.USER;
       User user = (User)selectedObject;
       parentObjectPrimaryKey = user.getId();
       log.info("User Id was => " + parentObjectPrimaryKey);
       if (user.getPicture() != null) {
       picturePrimaryKey = user.getPicture().getId();
       }
       theValueToBeReturned = "upload";
       } else {
       log.error("upload called with object type not supported.");
       }
       logConversation("Upload");
       log.info("< startUpload");
       return theValueToBeReturned;
       }
      etc.
      


      launched by
      <s:button value="#{messages.button_add_image}"
       action="#{uploadController.startUpload(the_organisation)}" rendered="#{the_organisation.picture == null}"/>
      



      Seam Component class (uploadController) (bean class = class nz.co.risingstars.actions.upload.UploadControllerImpl)
       Object bean = Naming.getInitialContext().lookup(jndiName);
      


      looking up: risingstars/UploadControllerImpl/local

      leads to: (only these in the ctx.table in NamingServer class)

      {
      CRUDUserControllerImpl=CRUDUserControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@a01ae18,
      CRUDOrganisationControllerImpl=CRUDOrganisationControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@744caec9,
      EncryptionControllerImpl=EncryptionControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@566749c5,
      UserRegistrationControllerImpl=UserRegistrationControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@171c50d4,
      MenuImpl=MenuImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@43fe9a26,
      FindOrganisationControllerImpl=FindOrganisationControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@3a57aa,
      LoggedInUserImpl=LoggedInUserImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@76515a03,
      FindUserControllerImpl=FindUserControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@56ecb7a4,
      TransactionListener=TransactionListener: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@4f0c9c91,
      AuthenticationControllerImpl=AuthenticationControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@44fb1c22,
      AvailabilityControllerImpl=AvailabilityControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@41f41f8f,
      Dispatcher=Dispatcher: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@244071d,
      ContentControllerImpl=ContentControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@402f0214,
      LoginControllerImpl=LoginControllerImpl: org.jnp.interfaces.NamingContext:org.jnp.server.NamingServer@4e318ff7}
      


      Sow where did it go?

      Am I missing something?