1 2 Previous Next 20 Replies Latest reply on Jan 23, 2009 10:38 AM by jhsingle Go to original post
      • 15. Re: JBoss 5 deployment error
        jaikiran

         

        "jaikiran" wrote:
        This is a bug.

        https://jira.jboss.org/jira/browse/EJBTHREE-1671

        • 16. Re: JBoss 5 deployment error
          jhsingle

          Thanks for creating the JIRA issue, I'll watch for that resolution. In the meantime...


          Possible workarounds:

          1) Probably the easiest - Remove all @Resource injection of application specific classes


          I have done this. My only remaining @Resource injection is
          @javax.annotation.Resource EJBContext ctx;
          

          which I hope is OK. But now the problem has migrated to the WAR file.
          2009-01-13 14:20:40,358 DEBUG [org.jboss.system.ServiceCreator] About to create bean: jboss.web.deployment:war=/usermgmt with code: org.jboss.web.deployers.WebModule
          2009-01-13 14:20:40,360 DEBUG [org.jboss.system.ServiceCreator] Created mbean: jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,360 DEBUG [org.jboss.system.ServiceConfigurator] SecurityManagement set to org.jboss.security.integration.JNDIBasedSecurityManagement@bd2c1e in jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,360 DEBUG [org.jboss.system.ServiceConfigurator] PolicyRegistration set to org.jboss.security.plugins.JBossPolicyRegistration@1bbc2b0 in jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,361 DEBUG [org.jboss.system.ServiceConfigurator] Kernel set to org.jboss.kernel.Kernel@832226 in jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,361 DEBUG [org.jboss.system.ServiceController] Creating service jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,362 DEBUG [org.jboss.system.ServiceController] starting service jboss.web.deployment:war=/usermgmt
          2009-01-13 14:20:40,362 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] webContext: /usermgmt
          2009-01-13 14:20:40,362 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] warURL: file:/home/jhsingl/pkg/jboss-5.0.0.GA/server/default/tmp/deploy/usermgmt-war-2.7.014863-exp.war/
          2009-01-13 14:20:40,363 INFO [org.jboss.web.tomcat.service.deployers.TomcatDeployment] deploy, ctxPath=/usermgmt, vfsUrl=workflow.ear/usermgmt-war-2.7.0.war
          2009-01-13 14:20:40,363 DEBUG [org.jboss.web.tomcat.service.deployers.TomcatDeployment] Using session cookies default setting
          2009-01-13 14:20:40,533 ERROR [org.jboss.web.tomcat.service.deployers.JBossContextConfig] XML error parsing: context.xml
          org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.processContextConfig(JBossContextConfig.java:552)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:538)
           at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
           at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)
           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:367)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146)
           at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
           at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
           at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
           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)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
           at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
           at $Proxy36.start(Unknown Source)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
           at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
           at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
           at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
           at org.jboss.system.ServiceController.start(ServiceController.java:460)
           at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
           at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
           at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
           at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
           at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
           at org.jboss.Main.boot(Main.java:209)
           at org.jboss.Main$1.run(Main.java:547)
           at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:97)
           at org.jboss.xb.binding.UnmarshallerImpl.<init>(UnmarshallerImpl.java:56)
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:96)
           ... 63 more
          Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:92)
           ... 65 more
          2009-01-13 14:20:40,535 ERROR [org.jboss.web.tomcat.service.deployers.JBossContextConfig] XML error parsing: jboss.web/localhost/context.xml.default
          org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.processContextConfig(JBossContextConfig.java:552)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:539)
           at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
           at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)
           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:367)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146)
           at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
           at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
           at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
           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)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
           at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
           at $Proxy36.start(Unknown Source)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
           at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
           at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
           at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
           at org.jboss.system.ServiceController.start(ServiceController.java:460)
           at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
           at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
           at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
           at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
           at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
           at org.jboss.Main.boot(Main.java:209)
           at org.jboss.Main$1.run(Main.java:547)
           at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:97)
           at org.jboss.xb.binding.UnmarshallerImpl.<init>(UnmarshallerImpl.java:56)
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:96)
           ... 63 more
          Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:92)
           ... 65 more
          2009-01-13 14:20:40,548 ERROR [org.jboss.web.tomcat.service.deployers.JBossContextConfig] XML error parsing: WEB-INF/context.xml
          org.jboss.xb.binding.JBossXBRuntimeException: Failed to create a new SAX parser
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:100)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.processContextConfig(JBossContextConfig.java:552)
           at org.jboss.web.tomcat.service.deployers.JBossContextConfig.init(JBossContextConfig.java:542)
           at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:279)
           at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
           at org.apache.catalina.core.StandardContext.init(StandardContext.java:5436)
           at org.apache.catalina.core.StandardContext.start(StandardContext.java:4148)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:367)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146)
           at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
           at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
           at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
           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)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
           at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
           at $Proxy36.start(Unknown Source)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
           at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
           at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
           at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
           at org.jboss.system.ServiceController.start(ServiceController.java:460)
           at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
           at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
           at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
           at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
           at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
           at org.jboss.Main.boot(Main.java:209)
           at org.jboss.Main$1.run(Main.java:547)
           at java.lang.Thread.run(Thread.java:595)
          Caused by: org.jboss.xb.binding.JBossXBException: Failed to create a new SAX parser
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:97)
           at org.jboss.xb.binding.UnmarshallerImpl.<init>(UnmarshallerImpl.java:56)
           at org.jboss.xb.binding.UnmarshallerFactory$UnmarshallerFactoryImpl.newUnmarshaller(UnmarshallerFactory.java:96)
           ... 63 more
          Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.parsers.SAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserImpl.<init>(Unknown Source)
           at org.apache.xerces.jaxp.SAXParserFactoryImpl.newSAXParser(Unknown Source)
           at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.<init>(SaxJBossXBParser.java:92)
           ... 65 more
          2009-01-13 14:20:40,560 DEBUG [org.jboss.web.tomcat.service.WebCtxLoader] injectionContainer enabled and processing beginning with JBoss WebCtxLoader
          2009-01-13 14:20:40,728 DEBUG [org.jboss.web.tomcat.service.deployers.JBossContextConfig] Setting MC attributes, kernel: org.jboss.kernel.Kernel@832226, unit: AbstractVFSDeploymentContext@13821494{vfszip:/home/jhsingl/pkg/jboss-5.0.0.GA/server/default/deploy/workflow.ear/usermgmt-war-2.7.0.war}
          2009-01-13 14:20:40,732 ERROR [org.apache.catalina.startup.ContextConfig] Marking this application unavailable due to previous error(s)
          2009-01-13 14:20:40,734 ERROR [org.apache.catalina.core.StandardContext] Context [/usermgmt] startup failed due to previous errors
          2009-01-13 14:20:40,736 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] Error installing to Start: name=jboss.web.deployment:war=/usermgmt state=Create mode=Manual requiredState=Installed
          org.jboss.deployers.spi.DeploymentException: URL file:/home/jhsingl/pkg/jboss-5.0.0.GA/server/default/tmp/deploy/usermgmt-war-2.7.014863-exp.war/ deployment failed
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeployInternal(TomcatDeployment.java:388)
           at org.jboss.web.tomcat.service.deployers.TomcatDeployment.performDeploy(TomcatDeployment.java:146)
           at org.jboss.web.deployers.AbstractWarDeployment.start(AbstractWarDeployment.java:460)
           at org.jboss.web.deployers.WebModule.startModule(WebModule.java:118)
           at org.jboss.web.deployers.WebModule.start(WebModule.java:96)
           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)
           at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:668)
           at org.jboss.system.microcontainer.ServiceProxy.invoke(ServiceProxy.java:206)
           at $Proxy36.start(Unknown Source)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:42)
           at org.jboss.system.microcontainer.StartStopLifecycleAction.installAction(StartStopLifecycleAction.java:37)
           at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
           at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
           at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.system.microcontainer.ServiceControllerContext.install(ServiceControllerContext.java:286)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
           at org.jboss.system.ServiceController.start(ServiceController.java:460)
           at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:146)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:104)
           at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:45)
           at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
           at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:50)
           at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:171)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1439)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1157)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1178)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1210)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1098)
           at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
           at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1598)
           at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:934)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1062)
           at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:984)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:822)
           at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:553)
           at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:781)
           at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:545)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.loadProfile(ProfileServiceBootstrap.java:304)
           at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:205)
           at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:405)
           at org.jboss.Main.boot(Main.java:209)
           at org.jboss.Main$1.run(Main.java:547)
           at java.lang.Thread.run(Thread.java:595)
          2009-01-13 14:20:40,737 DEBUG [org.jboss.system.ServiceCreator] Removing mbean from server: jboss.web.deployment:war=/usermgmt
          


          Contents of my ear file:
          META-INF/
          META-INF/MANIFEST.MF
          icu4j-3.4.4.jar
          xmlParserAPIs-2.0.2.jar
          jaxb-api-2.1.9.jar
          commons-logging-1.1.0.jboss.jar
          jaxb-xjc-2.1.9.jar
          iri-0.5.jar
          usermgmt-war-2.7.0.war
          usermgmt-ejb-2.7.0.jar
          commons-collections-3.1.jar
          oro-2.0.8.jar
          commons-codec-1.3.jar
          xercesImpl-2.9.1.jar
          logkit-1.2.jar
          commons-digester-1.7.jar
          workflow-war-2.7.0.war
          lucene-core-2.3.1.jar
          commons-lang-2.1.jar
          avalon-framework-4.1.5.jar
          stax-1.1.1-dev.jar
          json-jena-1.0.jar
          jaxb-impl-2.1.9.jar
          xpdl-2.0-alpha1.jar
          META-INF/jboss-app.xml
          META-INF/application.xml
          xmlbeans-jsr173-api-2.0-dev.jar
          antlr-2.7.6-brew.jar
          concurrent-jena-1.3.2.jar
          arq-2.3.jar
          commons-beanutils-1.7.0.jar
          jena-2.5.6.jar
          workflow-ejb-2.7.0.jar
          META-INF/maven/
          META-INF/maven/blackbook-workflow/
          META-INF/maven/blackbook-workflow/workflow-ear/
          META-INF/maven/blackbook-workflow/workflow-ear/pom.xml
          META-INF/maven/blackbook-workflow/workflow-ear/pom.properties
          


          and contents of usermgmt.war:
          META-INF/
          META-INF/MANIFEST.MF
          js/
          images/
          group/
          user/
          WEB-INF/
          WEB-INF/templates/
          WEB-INF/classes/
          WEB-INF/classes/security/
          WEB-INF/classes/security/web/
          WEB-INF/classes/security/web/group/
          WEB-INF/classes/security/web/user/
          WEB-INF/classes/security/web/util/
          WEB-INF/classes/security/web/role/
          WEB-INF/classes/blackbook/
          WEB-INF/classes/blackbook/web/
          WEB-INF/classes/blackbook/web/jxta/
          WEB-INF/lib/
          styles/
          role/
          js/functions.js
          images/listNavEnd.gif
          images/iconsTrash.gif
          images/iconsEdit.gif
          images/listNavNext.gif
          images/listNavBack.gif
          images/listNavStart.gif
          index.jsp
          group/Create.xhtml
          group/Modify.xhtml
          group/Delete.xhtml
          group/List.xhtml
          group/ViewPanel.xhtml
          group/EntryPanel.xhtml
          group/View.xhtml
          user/Create.xhtml
          user/Modify.xhtml
          user/Delete.xhtml
          user/List.xhtml
          user/ViewPanel.xhtml
          user/EntryPanel.xhtml
          user/View.xhtml
          WEB-INF/web.xml
          WEB-INF/custom.taglib.xml
          WEB-INF/tomahawk.taglib.xml
          WEB-INF/faces-beans.xml
          WEB-INF/jboss-web.xml
          WEB-INF/faces-config.xml
          WEB-INF/templates/header.xhtml
          WEB-INF/templates/Layout.xhtml
          WEB-INF/templates/footer.xhtml
          WEB-INF/classes/security/web/group/GroupHandler.class
          WEB-INF/classes/security/web/user/UserHandler.class
          WEB-INF/classes/security/web/util/FacesUtil.class
          WEB-INF/classes/security/web/role/RoleHandler.class
          WEB-INF/classes/blackbook/web/jxta/JxtaProxyServlet.class
          WEB-INF/classes/securityResources.properties
          WEB-INF/faces-navigation.xml
          WEB-INF/lib/oscache-2.3.jar
          WEB-INF/lib/icu4j-3.4.4.jar
          WEB-INF/lib/customJSF-1.0.0.jar
          WEB-INF/lib/commons-el-1.0.jar
          WEB-INF/lib/commons-logging-1.1.0.jboss.jar
          WEB-INF/lib/commons-io-1.1.jar
          WEB-INF/lib/commons-fileupload-1.1.1.jar
          WEB-INF/lib/commons-collections-3.1.jar
          WEB-INF/lib/oro-2.0.8.jar
          WEB-INF/lib/jxta_rc1-2.5.jar
          WEB-INF/lib/commons-codec-1.3.jar
          WEB-INF/lib/commons-digester-1.7.jar
          WEB-INF/lib/commons-lang-2.1.jar
          WEB-INF/lib/jsf-facelets-1.1.15.B1.jar
          WEB-INF/lib/commons-validator-1.1.4.jar
          WEB-INF/lib/standard-1.1.2.jar
          WEB-INF/lib/jstl-1.2.jar
          WEB-INF/lib/colt-1.2.0.jar
          WEB-INF/lib/el-ri-1.0.jar
          WEB-INF/lib/commons-beanutils-1.7.0.jar
          styles/common.css
          styles/security.css
          styles/project.css
          role/Create.xhtml
          role/Modify.xhtml
          role/Delete.xhtml
          role/List.xhtml
          role/ViewPanel.xhtml
          role/EntryPanel.xhtml
          role/View.xhtml
          META-INF/maven/
          META-INF/maven/blackbook-security/
          META-INF/maven/blackbook-security/usermgmt-war/
          META-INF/maven/blackbook-security/usermgmt-war/pom.xml
          META-INF/maven/blackbook-security/usermgmt-war/pom.properties
          


          As before, I have posted a zip of the entire log at
          http://rabasrv.jhuapl.edu/server.log.zip

          • 17. Re: JBoss 5 deployment error
            jaikiran

            So that has solved your EJB3 problem. The other exception:

            Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration


            looks like a classloader issue. Remove the xml and xerces related jar files from your application package and deploy it. Those jars are already available in JBoss.

            • 18. Re: JBoss 5 deployment error
              jhsingle

              OK, I have fixed the classloader issues and my ear now deploys. Now the JUnit tests are failing with a transaction error that I do not understand. I have searched the forums for this message and saw a few mentions, but nothing relevant to this case.

              -------------------------------------------------------------------------------
              Test set: workflow.test.ejb.LoopTest
              -------------------------------------------------------------------------------
              Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 3.567 sec <<< FAILURE!
              testDefine(workflow.test.ejb.LoopTest) Time elapsed: 3.525 sec <<< ERROR!
              javax.persistence.TransactionRequiredException: EntityManager must be access within a transaction
               at org.jboss.jpa.deployment.ManagedEntityManagerFactory.verifyInTx(ManagedEntityManagerFactory.java:155)
               at org.jboss.jpa.tx.TransactionScopedEntityManager.persist(TransactionScopedEntityManager.java:186)
               at workflow.ejb.server.WorkflowManager.persistExecutionSummaryImplementation(WorkflowManager.java:386)
               at workflow.ejb.server.WorkflowManager.persistExecutionSummary(WorkflowManager.java:93)
               at workflow.ejb.server.WorkflowManager.startImplementation(WorkflowManager.java:717)
               at workflow.ejb.server.WorkflowManager.start(WorkflowManager.java:263)
               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.aop.joinpoint.MethodInvocation.invokeTarget(MethodInvocation.java:122)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:111)
               at org.jboss.ejb3.EJBContainerInvocationWrapper.invokeNext(EJBContainerInvocationWrapper.java:69)
               at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.invoke(InterceptorSequencer.java:73)
               at org.jboss.ejb3.interceptors.aop.InterceptorSequencer.aroundInvoke(InterceptorSequencer.java:59)
               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.aop.advice.PerJoinpointAdvice.invoke(PerJoinpointAdvice.java:174)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.fillMethod(InvocationContextInterceptor.java:72)
               at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_fillMethod_25059428.invoke(InvocationContextInterceptor_z_fillMethod_25059428.java)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor.setup(InvocationContextInterceptor.java:88)
               at org.jboss.aop.advice.org.jboss.ejb3.interceptors.aop.InvocationContextInterceptor_z_setup_25059428.invoke(InvocationContextInterceptor_z_setup_25059428.java)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:62)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.entity.TransactionScopedEntityManagerInterceptor.invoke(TransactionScopedEntityManagerInterceptor.java:56)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.AllowedOperationsInterceptor.invoke(AllowedOperationsInterceptor.java:47)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.tx.NullInterceptor.invoke(NullInterceptor.java:42)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.stateless.StatelessInstanceInterceptor.invoke(StatelessInstanceInterceptor.java:68)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.tx.TxPolicy.invokeInNoTx(TxPolicy.java:66)
               at org.jboss.ejb3.tx.TxInterceptor$NotSupported.invoke(TxInterceptor.java:114)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.tx.TxPropagationInterceptor.invoke(TxPropagationInterceptor.java:76)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.security.RunAsSecurityInterceptorv2.invoke(RunAsSecurityInterceptorv2.java:94)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.security.RoleBasedAuthorizationInterceptorv2.invoke(RoleBasedAuthorizationInterceptorv2.java:201)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.security.Ejb3AuthenticationInterceptorv2.invoke(Ejb3AuthenticationInterceptorv2.java:159)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.ENCPropagationInterceptor.invoke(ENCPropagationInterceptor.java:41)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.asynchronous.AsynchronousInterceptor.invoke(AsynchronousInterceptor.java:106)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.BlockContainerShutdownInterceptor.invoke(BlockContainerShutdownInterceptor.java:65)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.currentinvocation.CurrentInvocationInterceptor.invoke(CurrentInvocationInterceptor.java:67)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.stateless.StatelessContainer.dynamicInvoke(StatelessContainer.java:486)
               at org.jboss.ejb3.session.InvokableContextClassProxyHack._dynamicInvoke(InvokableContextClassProxyHack.java:56)
               at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:91)
               at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
               at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:908)
               at org.jboss.remoting.transport.socket.ServerThread.completeInvocation(ServerThread.java:742)
               at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:695)
               at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:522)
               at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:230)
               at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:206)
               at org.jboss.remoting.Client.invoke(Client.java:1708)
               at org.jboss.remoting.Client.invoke(Client.java:612)
               at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:60)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:76)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
               at $Proxy32.invoke(Unknown Source)
               at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261)
               at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101)
               at $Proxy3.start(Unknown Source)
               at workflow.test.ejb.LoopTest.testDefine(LoopTest.java:128)
               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 junit.framework.TestCase.runTest(TestCase.java:164)
               at junit.framework.TestCase.runBare(TestCase.java:130)
               at junit.framework.TestResult$1.protect(TestResult.java:106)
               at junit.framework.TestResult.runProtected(TestResult.java:124)
               at junit.framework.TestResult.run(TestResult.java:109)
               at junit.framework.TestCase.run(TestCase.java:120)
               at junit.framework.TestSuite.runTest(TestSuite.java:230)
               at junit.framework.TestSuite.run(TestSuite.java:225)
               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.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
               at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:140)
               at org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:127)
               at org.apache.maven.surefire.Surefire.run(Surefire.java:177)
               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.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:338)
               at org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:997)
               at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:72)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.security.client.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:76)
               at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:102)
               at org.jboss.aspects.remoting.PojiProxy.invoke(PojiProxy.java:62)
               at $Proxy32.invoke(Unknown Source)
               at org.jboss.ejb3.proxy.handler.ProxyInvocationHandlerBase.invoke(ProxyInvocationHandlerBase.java:261)
               at org.jboss.ejb3.proxy.handler.session.SessionSpecProxyInvocationHandlerBase.invoke(SessionSpecProxyInvocationHandlerBase.java:101)
               at $Proxy3.start(Unknown Source)
               at workflow.test.ejb.LoopTest.testDefine(LoopTest.java:128)
              


              Here is the code for my test:
              package workflow.test.ejb;
              
              
              
              import java.io.FileNotFoundException;
              
              import java.io.InputStream;
              
              import java.util.List;
              
              import java.util.Properties;
              
              
              
              import javax.naming.InitialContext;
              
              
              
              import junit.framework.TestCase;
              
              
              
              import org.wfmc._2004.xpdl2.Activity;
              
              import org.wfmc._2004.xpdl2.DataField;
              
              import org.wfmc._2004.xpdl2.ExtendedAttributes;
              
              import org.wfmc._2004.xpdl2.Loop;
              
              import org.wfmc._2004.xpdl2.Transition;
              
              
              
              import workflow.ejb.client.ExecutionDetail;
              
              import workflow.ejb.client.ExecutionSummary;
              
              import workflow.ejb.client.WorkflowManagerRemote;
              
              import workflow.ejb.client.WorkflowPackage;
              
              
              
              /**
              
               * Test Looping
              
               *
              
               */
              
              public class LoopTest extends TestCase {
              
               /**
              
               * Remote interface for Workflow Manager
              
               */
              
               private WorkflowManagerRemote mgr = null;
              
              
              
               /**
              
               * Polling time
              
               */
              
               private static final int POLL_TIME = 10000;
              
              
              
               /**
              
               * Loop wait time
              
               */
              
               private static final int LOOP_WAIT_TIME = 5000;
              
              
              
               /**
              
               * Maximum number of iterations (i < 6)
              
               */
              
               private static final int MAX_ITERATIONS = 3;
              
              
              
               /**
              
               * Initial iteration value (i = 0)
              
               */
              
               private static final int INITIAL_ITERATION_VALUE = 0;
              
              
              
               /**
              
               * When to test after = do/while loop before = for loop
              
               */
              
               private static final String WHEN_TO_TEST = "after";
              
              
              
              
               /**
              
               * main()
              
               *
              
               * @param args
              
               */
              
               public static void main(String[] args) {
              
               junit.textui.TestRunner.run(BasicWorkflowTest.class);
              
               }
              
              
              
               /**
              
               * Constructor()
              
               *
              
               * @param name
              
               */
              
               public LoopTest(String name) {
              
               super(name);
              
               }
              
              
              
               /**
              
               * This method is the actual test case that is executed
              
               *
              
               * @throws Exception
              
               */
              
               public void testDefine() throws Exception {
              
               long id = -1;
              
              
              
               String name = "Name_" + System.currentTimeMillis() + "_"
              
               + Thread.currentThread().getId();
              
               try {
              
               // Construct XPDL
              
              
              
               WorkflowPackage pkg = new WorkflowPackage(name, "0", "BasicPD1_"
              
               + name);
              
               // Activity 0
              
               Activity a0 = pkg.addActivity("0", "0_cm");
              
               // Activity Data Fields.
              
              
              
               DataField df = WorkflowPackage.createDataField("numStmts",/* 0, */
              
               false, false, 10 + "");
              
               WorkflowPackage.addDataFieldToActivity(a0, df);
              
               ExtendedAttributes eas = WorkflowPackage.createExternalAttributes(
              
               "ModelManagerRemote", "workflow/ModelManager/remote",
              
               "ModelManagerRemote", "getModelAsString", "result0");
              
               a0.setExtendedAttributes(eas);
              
               Loop loop = WorkflowPackage.createStandardLoop(LOOP_WAIT_TIME,
              
               MAX_ITERATIONS, INITIAL_ITERATION_VALUE, WHEN_TO_TEST);
              
               a0.setLoop(loop);
              
              
              
               // Activity 1
              
               Activity a1 = pkg.addActivity("07777", "0_pass");
              
               // Activity Data Fields.
              
               DataField df2 = WorkflowPackage
              
               .createDataField("result0" /* , 0 */);
              
               WorkflowPackage.addDataFieldToActivity(a1, df2);
              
               eas = WorkflowPackage.createExternalAttributes(
              
               "ModelManagerRemote", "workflow/ModelManager/remote",
              
               "ModelManagerRemote", "passModel", "result07777");
              
               a1.setExtendedAttributes(eas);
              
              
              
               // Transition
              
               Transition t = new Transition();
              
               t.setName("0_cm_to_0_pass");
              
               t.setId("09999");
              
               t.setTo("07777");
              
               t.setFrom("0");
              
               pkg.addTransition(t); // Loop
              
              
              
               String xpdl = pkg.generateXPDL();
              
              
              
               id = mgr.persistProcessDefinition(xpdl);
              
               long pid = mgr.start(id);
              
              
              
               // give a chance for all actions to complete.
              
               ExecutionSummary executionSummary = mgr
              
               .retrieveProcessInstanceStatus(pid);
              
               int ctr = 0;
              
               boolean foundCount1 = false;
              
               boolean foundCount2 = false;
              
              
              
               while (executionSummary.getWhenCompleted() == null && ctr++ < 10) {
              
               Thread.sleep(POLL_TIME);
              
               executionSummary = mgr.retrieveProcessInstanceStatus(pid);
              
               }
              
              
              
               assertNotNull(executionSummary.getWhenCompleted());
              
               if (executionSummary.getWhenCompleted() != null) {
              
               List<ExecutionDetail> edList = executionSummary
              
               .getExecutionDetails();
              
               for (ExecutionDetail ed : edList) {
              
               if (ed.getResultingParams().containsKey("result0")) {
              
               foundCount1 = true;
              
               }
              
               if (ed.getResultingParams().containsKey("result07777")) {
              
               foundCount2 = true;
              
               }
              
               }
              
               }
              
              
              
               assertTrue(foundCount1);
              
               assertTrue(foundCount2);
              
              
              
               } finally {
              
               mgr.removeProcessDefinition(id);
              
               }
              
               }
              
              
              
               /**
              
               * @see TestCase#setUp()
              
               */
              
               @Override
              
               protected void setUp() throws Exception {
              
               super.setUp();
              
              
              
               InputStream in = getClass()
              
               .getResourceAsStream("/bootstrap.properties");
              
               if (in == null) {
              
               throw new FileNotFoundException(
              
               "Can't find file in classpath: bootstrap.properties");
              
               }
              
               Properties props = new Properties();
              
               props.load(in);
              
              
              
               InitialContext ic = new InitialContext(props);
              
              
              
               mgr = (WorkflowManagerRemote) ic
              
               .lookup("workflow/WorkflowManager/remote");
              
              
              
               }
              
              
              
               /**
              
               * @see TestCase#tearDown()
              
               */
              
               @Override
              
               protected void tearDown() throws Exception {
              
               super.tearDown();
              
               }
              
              
              
              }
              
              

              Here is the code for WorkflowManager which, I believe, correctly calls for container-managed transactions, and specifies a REQUIRESNEW transaction attribute for the method called.
              package workflow.ejb.server;
              
              import java.io.Serializable;
              import java.util.ArrayList;
              import java.util.Date;
              import java.util.List;
              
              import javax.annotation.security.RolesAllowed;
              import javax.ejb.EJBContext;
              import javax.ejb.Stateless;
              import javax.ejb.TransactionAttribute;
              import javax.ejb.TransactionAttributeType;
              import javax.ejb.TransactionManagement;
              import javax.ejb.TransactionManagementType;
              import javax.jws.WebService;
              import javax.jws.soap.SOAPBinding;
              import javax.persistence.EntityExistsException;
              import javax.persistence.EntityManager;
              import javax.persistence.PersistenceContext;
              import javax.persistence.Query;
              
              import org.apache.commons.lang.StringUtils;
              import org.apache.commons.logging.Log;
              import org.apache.commons.logging.LogFactory;
              import org.jboss.ejb3.annotation.RemoteBinding;
              import org.jboss.wsf.spi.annotation.WebContext;
              
              import security.authorization.AuthorizationPluginException;
              import security.authorization.BlackbookAuthorizationManager;
              import security.ejb.client.User;
              import workflow.ejb.client.ExecutionDetail;
              import workflow.ejb.client.ExecutionSummary;
              import workflow.ejb.client.ProcessDefinition;
              import workflow.ejb.client.ProcessDefinitionDigester;
              import workflow.ejb.client.StepDefinition;
              import workflow.ejb.client.TransitionReference;
              import workflow.ejb.client.WorkflowManagerRemote;
              import workflow.ejb.util.ParamUtil;
              
              /**
               * Implementation for the workflow management API.
               */
              @Stateless
              @WebService(endpointInterface = "workflow.ejb.client.WorkflowManagerEndpoint")
              @SOAPBinding(style = SOAPBinding.Style.RPC)
              @RolesAllowed( { "UNCLASSIFIED" })
              @RemoteBinding(jndiBinding = "workflow/WorkflowManager/remote")
              @TransactionManagement(value = TransactionManagementType.CONTAINER)
              @WebContext(contextRoot = "/workflowws", authMethod = "CLIENT-CERT", transportGuarantee = "CONFIDENTIAL", secureWSDLAccess = false)
              public class WorkflowManager implements Serializable, WorkflowManagerRemote {
               /**
               * The message queue
               */
               public static String queueName = "queue/WorkflowQ";
              
               /**
               * The class logger
               */
               private static Log logger = LogFactory.getLog(WorkflowManager.class);
              
               /**
               * The entity manager
               */
               @PersistenceContext(unitName = "workflow")
               protected EntityManager em;
              
               /** EJB context */
               @javax.annotation.Resource
               EJBContext ctx;
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#copyProcessDefinition(long)
               */
               public long copyProcessDefinition(long id) {
               return copyProcessDefinitionImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#copyProcessDefinitionProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               public long copyProcessDefinitionProxy(String publicKey, long id) {
               return copyProcessDefinitionImplementation(getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#persistExecutionSummary(workflow.ejb.client.ExecutionSummary)
               */
               @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
               public ExecutionSummary persistExecutionSummary(
               ExecutionSummary executionSummaryCopy) {
               return persistExecutionSummaryImplementation(getUser(),
               executionSummaryCopy);
               }
              
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#persistExecutionSummaryProxy(java.lang.String,
               * workflow.ejb.client.ExecutionSummary)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
               public ExecutionSummary persistExecutionSummaryProxy(String publicKey,
               ExecutionSummary executionSummaryCopy) {
               return persistExecutionSummaryImplementation(getUser(publicKey),
               executionSummaryCopy);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#persistProcessDefinition(java.lang.String)
               */
               public long persistProcessDefinition(String definition) {
               return persistProcessDefinitionImplementation(getUser(), definition);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#persistProcessDefinitionProxy(java.lang.String,
               * java.lang.String)
               */
               @RolesAllowed( { "PROXY_USER" })
               public long persistProcessDefinitionProxy(String publicKey,
               String definition) {
               return persistProcessDefinitionImplementation(getUser(publicKey),
               definition);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#removeExecution(long)
               */
               public void removeExecution(long id) {
               removeExecutionImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#removeExecutionProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               public void removeExecutionProxy(String publicKey, long id) {
               removeExecutionImplementation(getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#removeProcessDefinition(long)
               */
               public void removeProcessDefinition(long id) {
               removeProcessDefinitionImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#removeProcessDefinitionProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               public void removeProcessDefinitionProxy(String publicKey, long id) {
               removeProcessDefinitionImplementation(getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessDefinition(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public String retrieveProcessDefinition(long id) {
               return retrieveProcessDefinitionImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessDefinitionProxy(java.lang.String,
               * long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               @RolesAllowed( { "PROXY_USER" })
               public String retrieveProcessDefinitionProxy(String publicKey, long id) {
               return retrieveProcessDefinitionImplementation(getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveMostRecentProcessInstanceID(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long retrieveMostRecentProcessInstanceID(long pdId) {
               return retrieveMostRecentProcessInstanceIDImplementation(getUser(),
               pdId);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveMostRecentProcessInstanceIDProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long retrieveMostRecentProcessInstanceIDProxy(String publicKey,
               long pdId) {
               return retrieveMostRecentProcessInstanceIDImplementation(
               getUser(publicKey), pdId);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceIDs(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long[] retrieveProcessInstanceIDs(long pdId) {
               return retrieveProcessInstanceIDsImplementation(getUser(), pdId);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceIDsProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long[] retrieveProcessInstanceIDsProxy(String publicKey, long pdId) {
               return retrieveProcessInstanceIDsImplementation(getUser(publicKey),
               pdId);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceStatus(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public ExecutionSummary retrieveProcessInstanceStatus(long id) {
               return retrieveProcessInstanceStatusImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceStatusProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public ExecutionSummary retrieveProcessInstanceStatusProxy(
               String publicKey, long id) {
               return retrieveProcessInstanceStatusImplementation(getUser(publicKey),
               id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceStatusNoResults(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public ExecutionSummary retrieveProcessInstanceStatusNoResults(long id) {
               return retrieveProcessInstanceStatusNoResultsImplementation(getUser(),
               id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#retrieveProcessInstanceStatusNoResultsProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public ExecutionSummary retrieveProcessInstanceStatusNoResultsProxy(
               String publicKey, long id) {
               return retrieveProcessInstanceStatusNoResultsImplementation(
               getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#start(long)
               */
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long start(long id) {
               return startImplementation(getUser(), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#startProxy(java.lang.String,
               * long)
               */
               @RolesAllowed( { "PROXY_USER" })
               @TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED)
               public long startProxy(String publicKey, long id) {
               return startImplementation(getUser(publicKey), id);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#updateProcessDefinition(long,
               * java.lang.String)
               */
               public long updateProcessDefinition(long id, String definition) {
               return updateProcessDefinitionImplementation(getUser(), id, definition);
               }
              
               /**
               * @see workflow.ejb.client.WorkflowManagerEndpoint#updateProcessDefinitionProxy(java.lang.String,
               * long, java.lang.String)
               */
               @RolesAllowed( { "PROXY_USER" })
               public long updateProcessDefinitionProxy(String publicKey, long id,
               String definition) {
               return updateProcessDefinitionImplementation(getUser(publicKey), id,
               definition);
               }
              
               /**
               * Implementation of copy.
               *
               * @param user
               * the user information
               * @param id
               * the ID of the process definition to copy
               * @return the ID of the new process definition
               */
               private long copyProcessDefinitionImplementation(User user, long id) {
               try {
               ProcessDefinition pd = em.find(ProcessDefinition.class, id);
               return persistProcessDefinitionImplementation(user, pd
               .getDefinition());
               } catch (EntityExistsException e) {
               logger.error("Error copying ProcessDefinition", e);
               throw e;
               } catch (Exception e) {
               logger.error("An error occurred while copying ProcessDefinition.",
               e);
               throw new RuntimeException(
               "An error occurred while copying ProcessDefinition.");
               }
               }
              
               /**
               * @param exId
               * @return String
               */
               private String getResultingParams(long exId) {
               Query query = em.createQuery(
               "SELECT rp.resultingParamsAsXML FROM ResultingParams rp "
               + " WHERE rp.exDetailId =:first ").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
              
               // get execution detail of previous step.
               query.setParameter("first", exId);
              
               List<?> resultList = query.getResultList();
               String results = "";
               if (resultList != null && resultList.size() != 0) {
               results = (String) resultList.get(0);
               }
               return results;
               }
              
               /**
               * @return the user information from the EJB context
               */
               private User getUser() {
               User user = new User(ctx);
               return user;
               }
              
               /**
               * @param publicKey
               * the public key for the user
               * @return the user information from the authorization system
               */
               private User getUser(String publicKey) {
               if (StringUtils.isBlank(publicKey)) {
               throw new RuntimeException("'publicKey' cannot be null or blank.");
               }
              
               User user = null;
               try {
               user = new User(BlackbookAuthorizationManager
               .getBlackbookPrincipal(publicKey));
               } catch (AuthorizationPluginException e) {
               logger.error("Error retrieving user information.", e);
               throw new RuntimeException("Error retrieving user information.");
               }
               return user;
               }
              
               /**
               * Implementation for persist execution summary.
               *
               * @param user
               * the user information
               * @param executionSummaryCopy
               * the new execution summary
               * @return the newly persisted execution summary
               */
               private ExecutionSummary persistExecutionSummaryImplementation(User user,
               ExecutionSummary executionSummaryCopy) {
               ExecutionSummary executionSummary = new ExecutionSummary();
               executionSummary.setProcessDefinitionId(executionSummaryCopy
               .getProcessDefinitionId());
               executionSummary.setLogin(executionSummaryCopy.getLogin());
               executionSummary.setWhenStarted(executionSummaryCopy.getWhenStarted());
               em.persist(executionSummary);
              
               return executionSummary;
               }
              
               /**
               * Implementation for persist process definition.
               *
               * @param user
               * the user information
               * @param definition
               * the process definition XPDL
               * @return the id of the persisted process definition
               */
               private long persistProcessDefinitionImplementation(User user,
               String definition) {
               ProcessDefinition pd = new ProcessDefinition();
              
               logger.debug("process def is: " + definition);
              
               try {
               pd = ProcessDefinitionDigester.digestPD(definition);
               logger.debug("pd is " + pd);
               List<TransitionReference> trList = pd.getTransitionReferences();
               pd.setTransitionReferences(null);
               StepDefinition startingStepDefinition = pd
               .getStartingStepDefinition();
               pd.setLogin(user.getLogin());
               pd.setStartingStepDefinition(null);
               em.persist(pd);
               pd.setTransitionReferences(trList);
               pd.setStartingStepDefinition(startingStepDefinition);
               em.persist(pd);
               } catch (EntityExistsException e) {
               logger.error("Cannot persist ProcessDefinition, entity exists", e);
               throw e;
               } catch (Exception e) {
               logger.error("An error occurred persisting ProcessDefinition", e);
               throw new RuntimeException(
               "An error occurred persisting ProcessDefinition");
               }
              
               return new Long(pd.getId());
               }
              
               /**
               * Implementation for remove execution.
               *
               * @param user
               * the user information
               * @param id
               * the ID of the exeuction to remove
               */
               private void removeExecutionImplementation(User user, long id) {
               try {
               Query deleteQuery = em
               .createNativeQuery("DELETE FROM RESULTING_PARAMS "
               + " WHERE EX_SUMMARY_ID IN "
               + " (SELECT S.ID FROM EXECUTION_SUMMARY S WHERE S.PD_ID = :first)");
               deleteQuery.setParameter("first", id);
               deleteQuery.executeUpdate();
              
               Query query = em
               .createNativeQuery("DELETE FROM EXECUTION_DETAIL "
               + "WHERE EX_SUMMARY_ID IN (SELECT ID FROM EXECUTION_SUMMARY WHERE PD_ID = :first)");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery("DELETE FROM EXECUTION_SUMMARY WHERE PD_ID = :first ");
               query.setParameter("first", id);
               query.executeUpdate();
              
               } catch (Exception e) {
               logger.error("An error occurred while removing a running process.",
               e);
               throw new RuntimeException(
               "An error occurred while removing a running process.");
               }
               }
              
               /**
               * Implementation for remove process definition.
               *
               * @param user
               * the user information
               * @param id
               * the ID of the process definition to remove
               */
               private void removeProcessDefinitionImplementation(User user, long id) {
               try {
               logger.debug(" removing process definition for " + id);
              
               Query deleteQuery = em
               .createNativeQuery("DELETE FROM RESULTING_PARAMS "
               + " WHERE EX_SUMMARY_ID IN "
               + " (SELECT S.ID FROM EXECUTION_SUMMARY S WHERE S.PD_ID = :first)");
               deleteQuery.setParameter("first", id);
               deleteQuery.executeUpdate();
              
               Query query = em
               .createNativeQuery("DELETE FROM EXECUTION_DETAIL WHERE EX_SUMMARY_ID IN (SELECT ID FROM EXECUTION_SUMMARY WHERE PD_ID = :first)");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery("DELETE FROM EXECUTION_SUMMARY WHERE PD_ID = :first ");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery("DELETE FROM TRANSITION_DEFINITION WHERE TRANSITION_REFERENCE_ID IN (SELECT ID FROM TRANSITION_REFERENCE WHERE PD_ID = :first) ");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery("DELETE FROM TRANSITION_REFERENCE WHERE PD_ID =:first ");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery(" DELETE FROM STATE_DEFINITION WHERE ID IN (SELECT ID FROM STEP_DEFINITION WHERE PD_ID = :first)");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery(" UPDATE PROCESS_DEFINITION set START_STEP_ID = NULL WHERE ID = :first");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery(" DELETE FROM STEP_DEFINITION WHERE PD_ID = :first");
               query.setParameter("first", id);
               query.executeUpdate();
              
               query = em
               .createNativeQuery("DELETE FROM PROCESS_DEFINITION WHERE ID = :first ");
               query.setParameter("first", id);
               query.executeUpdate();
              
               logger.debug(" finishing remove");
              
               } catch (Exception e) {
               logger.error("An error occurred while removing ProcessDefinition.",
               e);
               throw new RuntimeException(
               "An error occurred while removing ProcessDefinition.");
               }
               }
              
               /**
               * Implementation for retrieve process definition.
               *
               * @param user
               * the user information
               * @param id
               * the ID of the process definition being retrieve
               * @return the process definition
               */
               private String retrieveProcessDefinitionImplementation(User user, long id) {
               ProcessDefinition pd = em.find(ProcessDefinition.class, id);
               if (pd == null) {
               return null;
               }
               return pd.getDefinition();
               }
              
               /**
               * Implementation for retrieve most recent process instance ID.
               *
               * @param user
               * the user information
               * @param pdId
               * process definition ID
               * @return ID for the most recently completed process instance ID
               */
               private long retrieveMostRecentProcessInstanceIDImplementation(User user,
               long pdId) {
               Query query = em.createQuery(
               "SELECT e.id from ExecutionSummary e "
               + "WHERE e.processDefinitionId = :pdId "
               + "AND e.whenCompleted is not null "
               + "ORDER BY e.whenCompleted DESC").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               query.setParameter("pdId", pdId);
              
               List resultList = query.getResultList();
              
               long id = -1;
               if(resultList != null && resultList.size() > 0)
               {
               id = (Long) resultList.get(0);
               }
              
               return id;
               }
              
               /**
               * Implementation for retrieve process instance IDs.
               *
               * @param user
               * the user information
               * @param pdId
               * the process definition ID
               * @return IDs of all of the process instances related to the specified
               * process definition
               */
               private long[] retrieveProcessInstanceIDsImplementation(User user, long pdId) {
               Query query = em.createQuery(
               "SELECT e.id from ExecutionSummary e "
               + "WHERE e.processDefinitionId = :pdId").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               query.setParameter("pdId", pdId);
              
               long[] ids = new long[query.getResultList().size()];
               int i = 0;
               for (Object resultObject : query.getResultList()) {
               long id = (Long) resultObject;
               ids[i++] = id;
               }
              
               return ids;
               }
              
               /**
               * Implementation for retrieve process instance status.
               *
               * @param user
               * the user information
               * @param id
               * the process instance ID
               * @return the execution summary
               */
               private ExecutionSummary retrieveProcessInstanceStatusImplementation(
               User user, long id) {
               logger.debug(" retrieving process instances with id = " + id);
              
               Query queryES = em.createQuery(
               "from ExecutionSummary e WHERE e.id = :first ").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               queryES.setParameter("first", id);
              
               ExecutionSummary executionSummary = (ExecutionSummary) queryES
               .getSingleResult();
              
               Query query = em.createQuery(
               "SELECT e.id, s.id from ExecutionDetail e, StateDefinition s "
               + "WHERE e.executionSummaryId = :first "
               + "AND s.id = e.associatedStepId "
               + "AND s.actionMethod is not empty "
               + "AND s.actionMethod is not null "
               + "AND s.actionClass is not empty "
               + "AND e.completed = 1").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               query.setParameter("first", id);
              
               List<ExecutionDetail> edList = new ArrayList<ExecutionDetail>();
               for (Object resultList : query.getResultList()) {
               Object[] result = ((Object[]) resultList);
               ExecutionDetail executionDetail = new ExecutionDetail();
               executionDetail.setId((Long) result[0]);
              
               String results = getResultingParams(executionDetail.getId());
               executionDetail.setResultingParams(ParamUtil.paramsAsXML(results,
               true));
               edList.add(executionDetail);
               }
               executionSummary.setExecutionDetails(edList);
               return executionSummary;
               }
              
               /**
               * Implementation for retrieve process instance status without step results.
               *
               * @param user
               * the user information
               * @param id
               * the process instance ID
               * @return the execution summary
               */
               private ExecutionSummary retrieveProcessInstanceStatusNoResultsImplementation(
               User user, long id) {
               logger.debug(" retrieving process instances with id = " + id);
              
               Query queryES = em.createQuery(
               "from ExecutionSummary e WHERE e.id = :first ").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               queryES.setParameter("first", id);
              
               ExecutionSummary executionSummary = (ExecutionSummary) queryES
               .getSingleResult();
              
               Query query = em.createQuery(
               "SELECT e.id, s.id from ExecutionDetail e, StateDefinition s "
               + "WHERE e.executionSummaryId = :first "
               + "AND s.id = e.associatedStepId "
               + "AND s.actionMethod is not empty "
               + "AND s.actionMethod is not null "
               + "AND s.actionClass is not empty "
               + "AND e.completed = 1").setHint(
               "org.hibernate.readOnly", Boolean.TRUE);
               query.setParameter("first", id);
              
               List<ExecutionDetail> edList = new ArrayList<ExecutionDetail>();
               for (Object resultList : query.getResultList()) {
               Object[] result = ((Object[]) resultList);
               ExecutionDetail executionDetail = new ExecutionDetail();
               executionDetail.setId((Long) result[0]);
               edList.add(executionDetail);
               }
               executionSummary.setExecutionDetails(edList);
               return executionSummary;
               }
              
               /**
               * Implementation of start.
               *
               * @param user
               * the user information
               * @param id
               * the id of the process definition to start
               * @return the id of the execution summary of the started process
               */
               private long startImplementation(User user, long id) {
               ProcessDefinition pd = em.find(ProcessDefinition.class, id);
               StepDefinition startStep = pd.getStartingStepDefinition();
               if (startStep != null) {
               ExecutionSummary executionSummary = new ExecutionSummary();
               executionSummary.setProcessDefinitionId(pd.getId());
               executionSummary.setLogin(user.getLogin());
               executionSummary.setWhenStarted(new Date());
               executionSummary =
               persistExecutionSummary(executionSummary);
               logger.debug(" start state id is " + startStep.getId());
               WorkflowUtil.sendMessage(queueName, startStep.getId(), getUser(),
               executionSummary.getId());
               return executionSummary.getId();
               }
              
               return -1;
               }
              
               /**
               * Implementation for update process definition.
               *
               * @param user
               * the user information
               * @param id
               * the ID of the process definition
               * @param definition
               * the new process definition XPDL
               * @return the new process definition ID
               */
               private long updateProcessDefinitionImplementation(User user, long id,
               String definition) {
               try {
               removeProcessDefinition(id);
               long newId = persistProcessDefinitionImplementation(user,
               definition);
               return newId;
              
               } catch (EntityExistsException e) {
               logger.error("Error updating ProcessDefinition", e);
               throw e;
               } catch (Exception e) {
               logger.error("Error updating ProcessDefinition.", e);
               throw new RuntimeException("Error updating ProcessDefinition.");
               }
               }
              }
              
              

              In addition, the server log *seems* to indicate that it is indeed joining a transaction and making the ejb calls (see log around line 36796 -as before, I have posted a zip of the server.log file at
              http://rabasrv.jhuapl.edu/server.log.zip )

              What am I missing here? Thanks again for your help.

              • 19. Re: JBoss 5 deployment error
                jaikiran

                Please create a separate thread (in appropriate forums) for new issues. That way we can ensure that we are discussing one issue at a time :)

                • 20. Re: JBoss 5 deployment error
                  jhsingle

                  Oops, will do...sorry!

                  1 2 Previous Next