3 Replies Latest reply on Jun 26, 2009 4:26 AM by jaikiran

    problem

      Hi guys,
      I do have an error when i deploy my j2ee application on a jboss server.


      08:53:02,986 [ScannerThread] ERROR [URLDeploymentScanner] Incomplete Deployment listing:

      --- MBeans waiting for other MBeans ---
      ObjectName: jboss.j2ee:ear=MyMMClient1EJB.ear,jar=MessageStoreManagerEJB.jar,name=MessageStoreManagerBean,service=EJB3
      State: NOTYETINSTALLED
      I Depend On:
      persistence.units:unitName=messagemanager

      ObjectName: jboss.j2ee:ear=MyMMClient1EJB.ear,jar=MessageStoreManagerEJB.jar,name=MessageTargetManagerBean,service=EJB3
      State: NOTYETINSTALLED
      I Depend On:
      persistence.units:unitName=messagemanager

      --- MBEANS THAT ARE THE ROOT CAUSE OF THE PROBLEM ---
      ObjectName: persistence.units:unitName=messagemanager
      State: NOTYETINSTALLED
      Depends On Me:
      jboss.j2ee:ear=MyMMClient1EJB.ear,jar=MessageStoreManagerEJB.jar,name=MessageStoreManagerBean,service=EJB3
      jboss.j2ee:ear=MyMMClient1EJB.ear,jar=MessageStoreManagerEJB.jar,name=MessageTargetManagerBean,service=EJB3

      My application is depoyed through a EAR file which has the following structure:

       MyApplicationEJB.ear
       |--lib (my libraries)
       |--META-INF
       | |--Application.xml
       |--MessageManagerEJB.jar (a set of class and message driven bean)
       |--MessageManagerTest (a set of mock class for my test)
       |--MessageStoreManagerEJB.jar ( a set of entity classs and entity bean)
       |--MessageManagerWeb.war (servlet)
       |--MyMMClient1EJB.jar (my application that use the message manager beans)
       |--ejb-jar.xml
       |--persistence.xml
      


      the application.xml is defined as:
      <?xml version="1.0" encoding="UTF-8"?>
      <application version="5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_5.xsd">
       <display-name>MessageManager</display-name>
       <module>
       <ejb>MyMMClient1EJB.jar</ejb>
       </module>
       <module>
       <ejb>MessageManagerWeb.war</ejb>
       </module>
       <module>
       <ejb>MessageManagerEJB.jar</ejb>
       </module>
      
       <module>
       <ejb>MessageStoreManagerEJB.jar</ejb>
       </module>
      
       <module>
       <ejb>lib/LoggingSubsystem.jar</ejb>
       </module>
      </application>
      


      the ejb-jar file in MyMMClient1EJB is defined as
      <?xml version="1.0" encoding="UTF-8"?>
      <ejb-jar version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd">
      
       <display-name>MyMMClient1</display-name>
       <enterprise-beans>
      
       <message-driven >
       <display-name>MessagerReceiver</display-name>
       <ejb-name>MessageReceiver</ejb-name>
       <ejb-class>com.ecebs.multefile.messaging.messagemanager.receiving.MessageReceiver</ejb-class>
      
       <transaction-type>Container</transaction-type>
       <activation-config>
       <activation-config-property>
       <activation-config-property-name>destinationType</activation-config-property-name>
       <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
       </activation-config-property>
       <activation-config-property>
       <activation-config-property-name>destination</activation-config-property-name>
       <activation-config-property-value>queue/MyMMClient1</activation-config-property-value>
       </activation-config-property>
       </activation-config>
       </message-driven>
       <message-driven >
       <display-name>IncomingMessageReceiver</display-name>
       <ejb-name>IncomingMessageReceiver</ejb-name>
       <ejb-class>com.ecebs.multefile.messaging.messagemanager.receiving.IncomingMessageReceiver</ejb-class>
      
       <transaction-type>Container</transaction-type>
       <activation-config>
       <activation-config-property>
       <activation-config-property-name>destinationType</activation-config-property-name>
       <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
       </activation-config-property>
       <activation-config-property>
       <activation-config-property-name>destination</activation-config-property-name>
       <activation-config-property-value>queue/MyMMClient1EJBInMsg</activation-config-property-value>
       </activation-config-property>
       </activation-config>
       </message-driven>
      
       <message-driven >
       <display-name>MessageDeliverer</display-name>
       <ejb-name>MessageDeliverer</ejb-name>
       <ejb-class>com.ecebs.multefile.messaging.messagemanager.sending.MessageDeliverer</ejb-class>
      
       <transaction-type>Container</transaction-type>
       <activation-config>
       <activation-config-property>
       <activation-config-property-name>destinationType</activation-config-property-name>
       <activation-config-property-value>javax.jms.Queue</activation-config-property-value>
       </activation-config-property>
       <activation-config-property>
       <activation-config-property-name>destination</activation-config-property-name>
       <activation-config-property-value>queue/MyMMClient1EJBOutMsg</activation-config-property-value>
       </activation-config-property>
       </activation-config>
       </message-driven>
      
      
       </enterprise-beans>
      </ejb-jar>
      


      the persistence.xml file is defined as
      <persistence xmlns="http://java.sun.com/xml/ns/persistence"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
       version="1.0">
       <persistence-unit name="messagemanager" transaction-type="JTA">
       <provider>org.hibernate.ejb.HibernatePersistence</provider>
       <jta-data-source>java:MESSAGEMANAGER_C1_DS</jta-data-source>
      
       <jar-file>../MessageStoreManagerEJB.jar</jar-file>
      
       <!-- <exclude-unlisted-classes >false</exclude-unlisted-classes> -->
       <properties>
       <property name="hibernate.dialect" value="org.hibernate.dialect.Oracle9iDialect"/>
       <property name="hibernate.show_sql" value="true"/>
       <property name="hibernate.format_sql" value="true"/>
       <property name="hibernate.hbm2ddl.auto" value="create"/>
       </properties>
       </persistence-unit>
      
      </persistence>
      


      the bean in the MessageStoreManagerEJB.jar include the annotation for the persistency and session bean
      @Stateless
      @PersistenceContext(
       name = MessageManagerConstants.PERSIST_NAME,
       unitName = MessageManagerConstants.PERSIST_JNDI
      )
      public class MessageStoreManagerBean implements MessageStoreManager, MessageStoreManagerLocal{
      ...
      
      }
      


      I could not figure out what is wrong with my code. Does somebody can help me.

      Thanks

        • 1. Re: problem
          jaikiran

           

          |--MyMMClient1EJB.jar (my application that use the message manager beans)
           |--ejb-jar.xml
           |--persistence.xml
          

          The ejb-jar.xml and the persistence.xml should be in the META-INF folder of the ejb jar (MyMMClient1EJB.jar)

          • 2. Re: problem


            Thanks for replying.
            both files are in the meta-inf directory (I just forgot to add the directory in my structure when i post the problem).

            |--MyMMClient1EJB.jar (my application that use the message manager beans)
             |--META-INF
             |--ejb-jar.xml
             |--persistence.xml
            


            • 3. Re: problem
              jaikiran

              Just to be sure, the folder name should be META-INF (case sensitive). Is that what you have named it?

              Looking at the error message, it looks like the bean that is relying on the persistence context injection is in a different jar than the one containing the persistence.xml. So you should try something like:

              @PersistenceContext(
               name = MessageManagerConstants.PERSIST_NAME,
               unitName = "MyMMClient1EJB.jar#messagemanager"