11 Replies Latest reply on Jul 17, 2008 7:38 AM by jaikiran

    Problems deploying app in a 64-bit environment

    jimmycallaghan

      I've been running Jboss5.0.0.Beta4 on my local (Ubuntu) machine and have an application running nicely. Unfortunately I can't move to JBoss5.0.0.CR1 because of a problem with persistence.xml in the META-INF directory of the EAR (http://jira.jboss.org/jira/browse/JBAS-5713).

      My application is deploying correctly on my local machine but I couldn't get it working on the server. Basically, JBoss seems to ignore my EJB annotations when it deploys my application and it deploys each EJB into it's default location. Thus, when another part of the application tries to do a local lookup to a bean it cannot.

      Since it was OK locally I put my application, its datasources and queue definitions into the relevant directories and tested. Everything worked. I then tarred up the whole lot (JBoss, datasources, EAR etc) and put it onto the server. I untarred and started the server and the EJBs were bound into their default locations and not where my @LocalBinding and @RemoteBinding binding annotations had specified. I am using the following import statements:

      import org.jboss.ejb3.annotation.LocalBinding;
      import org.jboss.ejb3.annotation.RemoteBinding;


      The only thing that is different between the server and my machine is that the server is using a 64bit jdk and my PC is 32 bit. I've tried 3 different versions of Java on the server (jrockit-R27.1.0-jdk1.5.0_08, jrockit-R27.5.0-jdk1.6.0_03 and jdk1.6.0_07). I'm getting the same result each time.

      Has anybody experienced anything similar?

        • 1. Re: Problems deploying app in a 64-bit environment
          jaikiran

          Can you post the console logs when JBoss is starting and the relevant part from the server.log when your application is being deployed?

          • 2. Re: Problems deploying app in a 64-bit environment
            jimmycallaghan

            Here is the server log as my application deploys (sorry for the formatting!!). The first part in bold shows that the EJB is being deployed and the second shows that it has clearly not been bound into the expected location within JNDI.

            2008-07-15 11:20:36,577 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ProcessedMessageHandlerMDB,service=EJB3 with dependencies:
            2008-07-15 11:20:36,577 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,577 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,577 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,577 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:javax.jms.MessageListener
            2008-07-15 11:20:36,579 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ProcessedMessageHandlerMDB,service=EJB3
            2008-07-15 11:20:36,579 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SendSmsMessageMDB,service=EJB3 with dependencies:
            2008-07-15 11:20:36,579 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,579 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,579 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,579 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:javax.jms.MessageListener
            2008-07-15 11:20:36,582 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SendSmsMessageMDB,service=EJB3
            2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceManagerBeanImpl,service=EJB3 with dependencies:
             2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
             2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
             2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
             2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.business.ServiceManagerBean$IRemote
             2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.business.ServiceManagerBean$ILocal
             2008-07-15 11:20:36,584 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceManagerBeanImpl,service=EJB3
            2008-07-15 11:20:36,584 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMessageNotificationMDB,service=EJB3 with dependencies:
            2008-07-15 11:20:36,584 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,584 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,584 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,584 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:javax.jms.MessageListener
            2008-07-15 11:20:36,587 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMessageNotificationMDB,service=EJB3
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=FailedClientNotificationDAOBeanImpl,service=EJB3 with dependencies:
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] persistence.units:unitName=mpee
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,587 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.dao.FailedClientNotificationDAOBean$ILocal
            2008-07-15 11:20:36,590 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=FailedClientNotificationDAOBeanImpl,service=EJB3
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMoDAOBeanImpl,service=EJB3 with dependencies:
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] persistence.units:unitName=mpee
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,590 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.dao.SmsMoDAOBean$ILocal
            2008-07-15 11:20:36,592 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMoDAOBeanImpl,service=EJB3
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMtDAOBeanImpl,service=EJB3 with dependencies:
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] persistence.units:unitName=mpee
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,592 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.dao.SmsMtDAOBean$ILocal
            2008-07-15 11:20:36,595 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMtDAOBeanImpl,service=EJB3
            2008-07-15 11:20:36,595 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMtNotificationDAOBeanImpl,service=EJB3 with dependencies:
            2008-07-15 11:20:36,595 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,626 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,626 INFO [org.jboss.ejb3.MCKernelAbstraction] persistence.units:unitName=mpee
            2008-07-15 11:20:36,626 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,626 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.dao.SmsMtNotificationDAOBean$ILocal
            2008-07-15 11:20:36,628 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=SmsMtNotificationDAOBeanImpl,service=EJB3
            2008-07-15 11:20:36,628 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceProviderMBeanImpl,service=EJB3 with dependencies:
            2008-07-15 11:20:36,629 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
            2008-07-15 11:20:36,629 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerService
            2008-07-15 11:20:36,629 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
            2008-07-15 11:20:36,629 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.jmx.ServiceProviderMBean
            2008-07-15 11:20:36,633 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceProviderMBeanImpl,service=EJB3
            2008-07-15 11:20:36,633 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployer] Begin deploy, org.jboss.metadata.web.jboss.JBossWebMetaData@1f
            2008-07-15 11:20:36,634 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployer] Unpacking war to: /home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/tmp/deploy/mpee64485-exp.war
            2008-07-15 11:20:36,699 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployer] deployWebModule: vfsfile:/home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/deploy/deploy.last/10.mpee.local.20080714.1755.ear/mpee.war
            2008-07-15 11:20:36,699 DEBUG [org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext] Added component jboss:id=deploy.last,service=jacc to vfsfile:/home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/deploy/deploy.last/
            2008-07-15 11:20:36,699 DEBUG [org.jboss.deployers.structure.spi.helpers.AbstractDeploymentContext] Added component jboss.web.deployment:war=/mpee to vfsfile:/home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/deploy/deploy.last/10.mpee.local.20080714.1755.ear/mpee.war
            2008-07-15 11:20:36,700 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss:service=jacc,id=deploy.last with code: org.jboss.deployment.security.JaccPolicy
            2008-07-15 11:20:36,700 DEBUG [org.jboss.system.ServiceCreator] Created mbean: jboss:service=jacc,id=deploy.last
            2008-07-15 11:20:36,701 DEBUG [org.jboss.system.ServiceController] Creating service jboss:service=jacc,id=deploy.last
            2008-07-15 11:20:36,701 DEBUG [org.jboss.system.ServiceController] starting service jboss:service=jacc,id=deploy.last
            2008-07-15 11:20:36,702 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss.web.deployment:war=/mpee with code: org.jboss.web.deployers.WebModule
            2008-07-15 11:20:36,704 DEBUG [org.jboss.system.ServiceCreator] Created mbean: jboss.web.deployment:war=/mpee
            2008-07-15 11:20:36,704 DEBUG [org.jboss.system.ServiceController] Creating service jboss.web.deployment:war=/mpee
            2008-07-15 11:20:36,705 DEBUG [org.jboss.system.ServiceController] starting service jboss.web.deployment:war=/mpee
            2008-07-15 11:20:36,705 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] webContext: /mpee
            2008-07-15 11:20:36,705 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] warURL: file:/home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/tmp/deploy/mpee64485-exp.war/
            2008-07-15 11:20:36,705 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/mpee, vfsUrl=deploy.last/10.mpee.local.20080714.1755.ear/mpee.war
            2008-07-15 11:20:36,706 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Using session cookies default setting
            2008-07-15 11:20:36,708 DEBUG [org.jboss.web.tomcat.service.WebCtxLoader] injectionContainer enabled and processing beginning with JBoss WebCtxLoader
            2008-07-15 11:20:36,829 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Creating ENC using ClassLoader: BaseClassLoader@5462bb{vfsfile:/home/jboss/jboss5.0.0.Beta4-instance1/server/custom1/deploy/deploy.last/10.mpee.local.20080714.1755.ear/mpee.war}
            2008-07-15 11:20:36,832 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Bound java:comp/ORB
            2008-07-15 11:20:36,832 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Linked java:comp/TransactionSynchronizationRegistry to JNDI name: java:TransactionSynchronizationRegistry
            2008-07-15 11:20:36,832 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Linked java:comp/UserTransaction to JNDI name: UserTransaction
            2008-07-15 11:20:36,833 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] linkSecurityDomain
            2008-07-15 11:20:36,833 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] No security-domain given, using default: java:/jaas/jboss-web-policy
            2008-07-15 11:20:36,833 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Linking security/securityMgr to JNDI name: java:/jaas/jboss-web-policy
            2008-07-15 11:20:36,833 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] injectionContainer enabled and processing beginning
            2008-07-15 11:20:36,839 INFO [com.telrock.platform.context.listener.ServiceManager] Telling ServiceManagerBean to request updates from service providers.
            2008-07-15 11:20:36,853 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/mpee]] Exception sending context initialized event to listener instance of class com.telrock.mpee.business.context.listener.ContextListener
             java.lang.IllegalStateException: Unable to load local bean ejb/mpee/local/ServiceManagerBean/local
             at com.telrock.util.EJBUtil.lookupLocal(EJBUtil.java:77)
             at com.telrock.mpee.business.context.listener.ContextListener.contextInitialized(ContextListener.java:31)
             at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3860)
             at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
             at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
             at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
             at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
             at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
             at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:585)
             at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
             at org.jboss.mx.server.RawDynamicInvoker.invoke(RawDynamicInvoker.java:164)
             at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
             at org.apache.catalina.core.StandardContext.init(StandardContext.java:5357)
             at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:346)
             at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:142)
             at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:347)
             at org.jboss.web.deployers.WebModule.startModule(WebModule.java:89)
             at org.jboss.web.deployers.WebModule.start(WebModule.java:67)
             at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
             at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
             at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
             at java.lang.reflect.Method.invoke(Method.java:585)
             at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:157)
             at org.jboss.mx.server.Invocation.dispatch(Invocation.java:96)
             at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
             at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
            Caused by: javax.naming.NameNotFoundException: ejb not bound
             at org.jnp.server.NamingServer.getBinding(NamingServer.java:542)
             at org.jnp.server.NamingServer.getBinding(NamingServer.java:550)


            Basically, what we have is a ContextListener in the war that calls the ServiceManager EJB as the application is deployed. Since the EJB is not where the ContextListener expects it to be we get the exception.

            • 3. Re: Problems deploying app in a 64-bit environment
              jaikiran

               

              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] installing bean: jboss.j2ee:ear=1
              0.mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceManagerBeanImpl,service=EJB3 with dependencies:
              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] and demands:
              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] jboss.ejb:service=EJBTimerSe
              rvice
              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] and supplies:
              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.busin
              ess.ServiceManagerBean$IRemote
              2008-07-15 11:20:36,582 INFO [org.jboss.ejb3.MCKernelAbstraction] Class:com.telrock.mpee.busin
              ess.ServiceManagerBean$ILocal
              2008-07-15 11:20:36,584 DEBUG [org.jboss.ejb3.Ejb3Deployment] Bound ejb3 container jboss.j2ee:ear=10
              .mpee.local.20080714.1755.ear,jar=mpee.jar,name=ServiceManagerBeanImpl,service=EJB3


              These log messages actually don't mean that the bean (interfaces) have been bound to the JNDI. This is the just the parsing step. The actual binding happens later on. Unfortunately, the jndi bindings logs are at DEBUG level and don't appear on the console. Here's an example logs from my deployment which has an EJB3 with the @RemoteBinding annotation. The actual jndi-binding logs appear after you see the STARTED ejb log in server.log:
              2008-07-15 17:58:53,536 INFO [org.jboss.ejb3.EJBContainer] (main) STARTED EJB: org.myapp.ejb.impl.UserManagerBean ejbName: UserManagerBean
              2008-07-15 17:58:53,536 DEBUG [org.jboss.ejb3.proxy.factory.ProxyFactoryHelper] (main) Obtaining JNDI name from policy org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy
              2008-07-15 17:58:53,536 DEBUG [org.jboss.ejb3.proxy.factory.ProxyFactoryHelper] (main) Obtaining JNDI name from policy org.jboss.ejb3.jndipolicy.impl.PackagingBasedJndiBindingPolicy
              2008-07-15 17:58:53,536 DEBUG [org.jboss.ejb3.proxy.factory.BaseSessionProxyFactory] (main) Binding proxy for UserManagerBean in JNDI at RemoteUserManagerBean
              


              Basically, what we have is a ContextListener in the war that calls the ServiceManager EJB as the application is deployed.


              Looks like a deployment ordering issue. Can you try this:

              - Stop the server
              - Remove your WAR from the deploy folder and let the EJB jar/ear be present in the deploy folder.
              - Start the server
              - Once the server is completely started (i.e. the EJBs deployed), place the WAR in the deploy folder so that the WAR is picked up for hot deployment.

              See if that works.



              • 4. Re: Problems deploying app in a 64-bit environment
                jimmycallaghan

                If it is an ordering thing, and the EJBs haven't been bound into the relevant JNDI locations at the point that the WAR is being deployed, then shouldn't they be in the correct locations once the server has fully started? My problem with this is that when I look at the JNDI view in the JMX console I can see that none of the EJBs are bound to the correct locations even after the server has fully started.

                ******* minutes later *********

                So I removed the WAR from the EAR and restarted. Now I don't get the error when the WAR deploys (as expected) and the EJBs are bound correctly in JNDI. So it seems that when the WAR failed to deploy it stopped the deployment process of the rest of the EAR which meant that the EJBs were not then bound.

                Why is it that on my local machine the deployment order is correct and on the server it is not? Are there multiple threads deploying different modules in the EAR simultaneously (the server is a dual-core machine)? So, I suppose my next task is to determine how I can make the WAR the last thing to deploy when an EAR is deployed.

                • 5. Re: Problems deploying app in a 64-bit environment
                  jimmycallaghan

                  Sorry, forgot to thank you for your help jakiran.

                  • 6. Re: Problems deploying app in a 64-bit environment
                    jaikiran

                     

                    "jimmycallaghan" wrote:

                    So it seems that when the WAR failed to deploy it stopped the deployment process of the rest of the EAR which meant that the EJBs were not then bound.


                    If the EAR and the WAR are independent deployments, then the failing WAR should not have stopped the EAR deployment.

                    "jimmycallaghan" wrote:

                    Why is it that on my local machine the deployment order is correct and on the server it is not?

                    Are there any server configurations changes on these 2 setups?

                    "jimmycallaghan" wrote:

                    Are there multiple threads deploying different modules in the EAR simultaneously (the server is a dual-core machine)?


                    As far as i know, there's just one single "main" thread which does this deployment when the server is starting.

                    • 7. Re: Problems deploying app in a 64-bit environment
                      jaikiran

                       

                      "jimmycallaghan" wrote:

                      So I removed the WAR from the EAR and restarted.


                      From the EAR? I thought the EAR and WAR were being deployed separately. If the WAR was present in the EAR, then the deployment ordering is determined by the order in which the "module" elements are written in the application.xml of the EAR. What are the contents of the application.xml?

                      Also, now that i paid more attention to your logs, looks like you are placing your application in the deploy.last folder. Any specific reason?


                      • 8. Re: Problems deploying app in a 64-bit environment
                        jimmycallaghan

                        Ahhhhh.... excellent. So all I need to do is to make the war module the last entry in the application.xml (it is currently the first). I will try that.

                        As for why it is in the deploy.last directory.... in a previous attempt to get this working I thought that maybe another service had not yet deployed which was causing the EJBs to be bound incorrectly. I moved it out of deploy and into deploy.last in an attempt to test this hypothesis and I simply never moved it back.

                        • 9. Re: Problems deploying app in a 64-bit environment
                          jimmycallaghan

                          Unfortunately, moving the war entry in the application.xml has not resolved the problem. Here is my new application.xml:

                          <?xml version="1.0" encoding="UTF-8"?>

                          <application>
                          
                           <display-name>mpee</display-name>
                          
                           <module><java>lib/core.jar</java></module>
                           <module><java>lib/mpee.jar</java></module>
                           <module><java>lib/config.jar</java></module>
                          
                           <module id="webapp">
                           <web>
                           <web-uri>mpee.war</web-uri>
                           <context-root>/mpee</context-root>
                           </web>
                           </module>
                          
                          </application>


                          I did wonder though.... if all the modules in the application deploy in the correct order locally, and nothing is different in the two environments except the 64-"bitness" and the version of Java, then why would the order in application.xml make a difference?

                          • 10. Re: Problems deploying app in a 64-bit environment
                            jimmycallaghan

                            I see that in prior versions of JBoss it was possible to put

                            <module-order>strict</module-order>


                            into the jboss-app.xml file. However, this no longer seems to work. Pity.

                            • 11. Re: Problems deploying app in a 64-bit environment
                              jaikiran

                               

                              "jimmycallaghan" wrote:
                              I see that in prior versions of JBoss it was possible to put

                              <module-order>strict</module-order>


                              into the jboss-app.xml file. However, this no longer seems to work. Pity.


                              https://jira.jboss.org/jira/browse/JBAS-5115