EjbProcessApplication

501 views
Skip to first unread message

Michael Grom

unread,
Aug 19, 2013, 4:29:34 AM8/19/13
to camunda-...@googlegroups.com
Dear forum,

until alpha9 I was assuming that it is sufficient to include the libs for the camunda-bpm-ejb client to start off with an EjbProcessApplication instead of a ServletProcessApplication. Now the web app (an ejb client outside an ear file, all GlassFish 3.1) stalls and complains with

Caused by: java.lang.IllegalArgumentException: Can not set org.camunda.bpm.application.ProcessApplicationInterface field org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener.defaultEjbProcessApplication to org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:164)

please accept my apologies if this is just RTFM..

Kind regards
Michael

Daniel Meyer

unread,
Aug 19, 2013, 4:54:36 AM8/19/13
to Michael Grom, camunda-...@googlegroups.com

Hi Michael,

 

This should just work. Are you including the camunda-ejb-client-7.0.0-xx.jar in the WEB-INF/lib folder of a Web Application (.WAR deployment) or are you using a different deployment layout?

 

The docs on this feature are here:

http://docs.camunda.org/guides/user-guide/#!/#the-ejb-process-application

 

Cheers,

Daniel Meyer

--
You received this message because you are subscribed to the Google Groups "camunda BPM users & process application developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to camunda-bpm-us...@googlegroups.com.
To post to this group, send email to camunda-...@googlegroups.com.

Michael Grom

unread,
Aug 19, 2013, 5:52:17 AM8/19/13
to camunda-...@googlegroups.com, Michael Grom
Hi Daniel,

yes, exactly this approach -xx is alpha9 (not working) and was alpha6 (working).

kind regards
Michael

Daniel Meyer

unread,
Aug 19, 2013, 7:29:07 AM8/19/13
to Michael Grom, camunda-...@googlegroups.com

Hi Michael,

 

Do you know whether it works in Glassfish 3.1?

We run integration test QA/CI against GF 3.1 with the exact deployment scenario you are describing.

 

http://docs.camunda.org/guides/user-guide/#!/#introduction/supported-environments

Michael Grom

unread,
Aug 19, 2013, 8:23:49 AM8/19/13
to camunda-...@googlegroups.com
Hi Daniel,

it happend after upgrading the GF 3.1 from alpha6 to alpha9:

Server
- ..\glaasfish\lib\camunda-engine-7.0.0-alpha9.jar
+ EAR for shared camunda-bpm
+ jobexecution RAR

App
- ..\WEB-INF\lib\camunda-ejb-client-7.0.0-alpha9.jar
- ..\WEB-INF\lib\camunda-engine-cdi-7.0.0-alpha9.jar

Repository is on MySQL, which I have scratched and rebuild from alpha09 create SQL scripts.

Of course I can try to revert to alpha6 and look if everything is back to normal.

kind regards
Michael

Michael Grom

unread,
Aug 19, 2013, 10:04:52 AM8/19/13
to camunda-...@googlegroups.com
I did a "fresh" upgrade on my GF3.1 and the simple DEMO.bpmn (Start-Service-End) ;-)  deploys nicely now. Had to remove all adaptors and modules. GF seems to be really fickle about that. So far, I did not care much about upgrade procedures but that will be very interesting once things would go to production. What remains is that alpha9 does not like my old *.bpmn files, unlike alpha6 and earlier did:

org.camunda.bpm.engine.ProcessEngineException: One of the attributes 'class', 'delegateExpression', 'type', 'operation', or 'expression' is mandatory on serviceTask. | MONITOR.bpmn | line 119 | column 91
    at org.camunda.bpm.engine.impl.util.xml.Parse.throwActivitiExceptionForErrors(Parse.java:183)
    at org.camunda.bpm.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:248)
    at org.camunda.bpm.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:97)
    at org.camunda.bpm.engine.impl.persistence.deploy.DeploymentCache.deploy(DeploymentCache.java:44)
    at org.camunda.bpm.engine.impl.persistence.entity.DeploymentManager.insertDeployment(DeploymentManager.java:43)

There is not even a service task in the *.bpmn file - just user task. And the line referred to is a message event definition:

   <bpmn2:messageEventDefinition id="MessageEventDefinition_9" messageRef="Message_1"/>

Strange...


kind regards
Michael

On Monday, August 19, 2013 10:29:34 AM UTC+2, Michael Grom wrote:

Michael Grom

unread,
Aug 20, 2013, 12:36:02 AM8/20/13
to camunda-...@googlegroups.com
Hi,

I've investigated a little further. Since the problem started with a process definition incorrectly parsed (I daresay), the engine / library signalled an error. Now it seems that the entire shared BPM engine cannot properly recover from this deploy time error.
Scenario:
Glassfish 3.1, shared bpm engine, alpha9, MySQL 5.5, no process applications...ermm..Windows 7 64, Java 7 (b21).
Deploy DEMO.bpmn with correct diagram, -> no problem
Change diagram and add, let's say, an timer event but with no timer definition
Build and deploy. Fails with pointing at the missing timer definition
Fix diagram, build and redeploy
Deployment fails showing this stacktrace
-----
INFO: Adding new Shipping entry
INFO: EJB5181:Portable JNDI names for EJB DefaultEjbProcessApplication: [java:global/Tango-camunda-web/DefaultEjbProcessApplication, java:global/Tango-camunda-web/DefaultEjbProcessApplication!org.camunda.bpm.application.ProcessApplicationInterface]
INFO: Found process application file at file:/C:/netbeansprojects/glassfish/Tango/Tango-camunda-web/target/Tango-camunda-web-1.0-SNAPSHOT/WEB-INF/classes/META-INF/processes.xml
INFO: Deployment summary for process archive 'TAGO':
        DEMO.bpmn
        DEMO.png

INFO: Processing resource DEMO.png
INFO: Processing resource DEMO.bpmn
INFO: Process Application Tango-camunda-web successfully deployed.
SEVERE: ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5332)
    at com.sun.enterprise.web.WebModule.start(WebModule.java:498)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2019)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669)
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2743)
    at org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:1966)
    at com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:235)
    at com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:94)
    at com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:274)
    at com.sun.enterprise.web.WebModuleContextConfig.lifecycleEvent(WebModuleContextConfig.java:172)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:149)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:5329)
    ... 39 more
Caused by: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2853)
    at org.apache.catalina.core.StandardContext.loadListener(StandardContext.java:4806)
    at com.sun.enterprise.web.WebModule.loadListener(WebModule.java:1599)
    at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2740)
    ... 46 more
Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:315)
    at com.sun.enterprise.web.WebContainer.createListenerInstance(WebContainer.java:761)
    at com.sun.enterprise.web.WebModule.createListenerInstance(WebModule.java:1987)
    at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2851)
    ... 49 more
Caused by: java.lang.NullPointerException
    at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:477)
    at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:420)
    at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:299)
    ... 52 more

WARNING: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:921)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2019)
    at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669)
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: Exception while invoking class com.sun.enterprise.web.WebApplication start method
java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener
    at com.sun.enterprise.web.WebApplication.start(WebApplication.java:138)
    at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
    at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
    at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
    at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
    at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:348)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)
    at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1259)
    at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:461)
    at com.sun.enterprise.v3.admin.AdminAdapter.service(AdminAdapter.java:212)
    at com.sun.grizzly.tcp.http11.GrizzlyAdapter.service(GrizzlyAdapter.java:179)
    at com.sun.enterprise.v3.server.HK2Dispatcher.dispath(HK2Dispatcher.java:117)
    at com.sun.enterprise.v3.services.impl.ContainerMapper$Hk2DispatcherCallable.call(ContainerMapper.java:354)
    at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:195)
    at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:860)
    at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:757)
    at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1056)
    at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:229)
    at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    at java.lang.Thread.run(Thread.java:722)

SEVERE: Exception while loading the app
SEVERE: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener

----

Bad news: the Glassfish cannot recover from this situation, the domain has to be stopped and re-started. Not what you want in a production environment.

So basically there are two phenomenons: a) a process diagram with a pool and lanes and event-based gateways and messages and user tasks but no service tasks fails to deploy giving a wrong error reason for a service task, b) when that happens the server needs restart to recover from a situation that prevents further deployments.

As I'm fiddling around with only one process / one process app to narrow down the error source the problem with subsequent deployments failing until restart may be bound to the same process app/process def.

kind regards
Michael
On Monday, August 19, 2013 10:29:34 AM UTC+2, Michael Grom wrote:

Daniel Meyer

unread,
Aug 20, 2013, 2:48:14 AM8/20/13
to Michael Grom, camunda-...@googlegroups.com

Hi Michael,

 

thanks for investigating.

 

I now did the following:

 

-          I deploy a process application (WAR) bundling the camunda-ejb-client.jar in WEB-INF/lib

-          Deployment fails due to a parsing error:

 

Caused by: org.camunda.bpm.engine.ProcessEngineException: cvc-id.1: There is no ID/IDREF binding for IDREF 'reviewSuccessful_gw'. | invoice.bpmn | line 235 | column 15

Invalid destination 'reviewSuccessful_gw' of sequence flow 'sequenceFlow_183' | invoice.bpmn | line 56 | column 119

Invalid source 'reviewSuccessful_gw' of sequence flow 'reviewNotSuccessful' | invoice.bpmn | line 60 | column 137

Invalid source 'reviewSuccessful_gw' of sequence flow 'reviewSuccessful' | invoice.bpmn | line 63 | column 130

Exclusive Gateway 'reviewSuccessful_' has no outgoing sequence flows. | invoice.bpmn | line 0 | column 0

Invalid reference in 'bpmnElement' attribute, activity reviewSuccessful_gwnot found | invoice.bpmn | line 119 | column 136

 

        at org.camunda.bpm.engine.impl.util.xml.Parse.throwActivitiExceptionForErrors(Parse.java:183)

        at org.camunda.bpm.engine.impl.bpmn.parser.BpmnParse.execute(BpmnParse.java:248)

        at org.camunda.bpm.engine.impl.bpmn.deployer.BpmnDeployer.deploy(BpmnDeployer.java:97)

        at org.camunda.bpm.engine.impl.persistence.deploy.DeploymentCache.deploy(DeploymentCache.java:44)

        at org.camunda.bpm.engine.impl.persistence.entity.DeploymentManager.insertDeployment(DeploymentManager.java:43)

        at org.camunda.bpm.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:68)

        at org.camunda.bpm.engine.impl.cmd.DeployCmd.execute(DeployCmd.java:37)

 

 

-          I fix the BPMN XML Error in the process and redeploy. Now I am getting the same error as you:

 

[#|2013-08-20T08:14:54.914+0200|WARNING|glassfish3.1.2|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=18;_ThreadName=AutoDeployer;|[AutoDeploy] Autodeploy failed : C:\Users\meyerd\Downloads\camunda-bpm-glassfish-7.0.0-alpha9\server\glassfish3\glassfish\domains\domain1\autodeploy\camunda-example-invoice-7.0.0-alpha9.war.|#]

 

[#|2013-08-20T08:15:22.075+0200|INFO|glassfish3.1.2|javax.enterprise.system.tools.deployment.org.glassfish.deployment.common|_ThreadID=18;_ThreadName=AutoDeployer;|[AutoDeploy] Selecting file C:\Users\meyerd\Downloads\camunda-bpm-glassfish-7.0.0-alpha9\server\glassfish3\glassfish\domains\domain1\autodeploy\camunda-example-invoice-7.0.0-alpha9.war for autodeployment.|#]

 

[#|2013-08-20T08:15:22.240+0200|INFO|glassfish3.1.2|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=18;_ThreadName=AutoDeployer;|EJB5181:Portable JNDI names for EJB DefaultEjbProcessApplication: [java:global/camunda-example-invoice-7.0.0-alpha9/DefaultEjbProcessApplication, java:global/camunda-example-invoice-7.0.0-alpha9/DefaultEjbProcessApplication!org.camunda

 

[#|2013-08-20T08:15:22.360+0200|INFO|glassfish3.1.2|org.camunda.bpm.container.impl.jmx.deployment.ParseProcessesXmlStep|_ThreadID=18;_ThreadName=AutoDeployer;|Found process application file at file:/C:/Users/meyerd/Downloads/camunda-bpm-glassfish-7.0.0-alpha9/server/glassfish3/glassfish/domains/domain1/applications/camunda-example-invoice-7.0.0-alpha9/WEB-INF/classes/META-INF/processe

 

[#|2013-08-20T08:15:22.364+0200|INFO|glassfish3.1.2|org.camunda.bpm.container.impl.jmx.deployment.DeployProcessArchiveStep|_ThreadID=18;_ThreadName=AutoDeployer;|Deployment summary for process archive 'pa':

 

        invoice.bpmn

        invoice.png

|#]

 

[#|2013-08-20T08:15:22.366+0200|INFO|glassfish3.1.2|org.camunda.bpm.container.impl.jmx.JmxRuntimeContainerDelegate|_ThreadID=18;_ThreadName=AutoDeployer;|Process Application camunda-example-invoice-7.0.0-alpha9 successfully deployed.|#]

 

[#|2013-08-20T08:15:22.376+0200|SEVERE|glassfish3.1.2|org.apache.catalina.core.ContainerBase|_ThreadID=18;_ThreadName=AutoDeployer;|ContainerBase.addChild: start:

org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5332)

        at com.sun.enterprise.web.WebModule.start(WebModule.java:498)

        at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)

        at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)

        at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:733)

        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2018)

        at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1669)

        at com.sun.enterprise.web.WebApplication.start(WebApplication.java:109)

        at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)

        at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)

        at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:301)

        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)

        at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)

        at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:389)

        at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:353)

        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:363)

        at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1085)

        at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:95)

        at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1291)

        at org.glassfish.deployment.autodeploy.AutoOperation.run(AutoOperation.java:145)

        at org.glassfish.deployment.autodeploy.AutoDeployer.deploy(AutoDeployer.java:575)

        at org.glassfish.deployment.autodeploy.AutoDeployer.deployAll(AutoDeployer.java:461)

        at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:389)

        at org.glassfish.deployment.autodeploy.AutoDeployer.run(AutoDeployer.java:380)

        at org.glassfish.deployment.autodeploy.AutoDeployService$1.run(AutoDeployService.java:220)

        at java.util.TimerThread.mainLoop(Timer.java:512)

        at java.util.TimerThread.run(Timer.java:462)

Caused by: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener

        at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2743)

        at org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:1966)

        at com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:235)

        at com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:94)

        at com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:274)

       at com.sun.enterprise.web.WebModuleContextConfig.lifecycleEvent(WebModuleContextConfig.java:172)

        at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:149)

        at org.apache.catalina.core.StandardContext.start(StandardContext.java:5329)

        ... 26 more

Caused by: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener

        at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2853)

        at org.apache.catalina.core.StandardContext.loadListener(StandardContext.java:4806)

        at com.sun.enterprise.web.WebModule.loadListener(WebModule.java:1599)

        at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2740)

        ... 33 more

Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class: class org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener

        at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:315)

        at com.sun.enterprise.web.WebContainer.createListenerInstance(WebContainer.java:761)

        at com.sun.enterprise.web.WebModule.createListenerInstance(WebModule.java:1987)

        at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2851)

        ... 36 more

Caused by: java.lang.NullPointerException

        at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:477)

        at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:420)

        at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:299)

        ... 39 more

|#]

 

We have a servlet context listener in the camunda-ejb-client.jar which is named org.camunda.bpm.application.impl.web.ProcessArchiveServletContextListener. Glassfish seems to be unable to instantiate it after the failing redeployment. The process application deployment as such seems to be successful though (see fist yellow highlighted section above).

But Glassfish fails later on when attempting to create the managed instance of the ProcessArchiveServletContextListener. I am not sure whether this is a bug in glassfish.

 

We go great lengths in the camunda BPM platform for making sure we do not have inconsistencies in internal process engine state after a failed redeployment. For example we have a deployment infrastructure which makes sure that a failing deployment is properly rolled back etc.

https://github.com/camunda/camunda-bpm-platform/blob/master/engine/src/main/java/org/camunda/bpm/container/impl/jmx/kernel/MBeanDeploymentOperation.java?source=c

 

This is actually a lessons learned from camunda fox platform where we had problems with inconsistent state after failed deployments.

 

We also test this in QA:

https://github.com/camunda/camunda-bpm-platform/blob/master/qa/integration-tests-engine/src/test/java/org/camunda/bpm/integrationtest/deployment/war/TestWarDeploymentWithBrokenBpmnXml.java

 

What I also noticed:

-          When I rename the war file after a failed deployment the re-deployment works fine. Hmm…

 

Do you maybe have any additional Ideas?

 

Cheers,

Daniel Meyer

--

Michael Grom

unread,
Aug 20, 2013, 11:03:57 AM8/20/13
to camunda-...@googlegroups.com
No doubt that you're doing extensive tests and Q/A :-)

With this issue sticking to the name of the war file it indeed looks like this comes from the web container. Would probably interesting to know if this is typical in GF3 for failed deployments or only if the ProcessEngine and/or CDI is involved.

kind regards
Michael

On Monday, August 19, 2013 10:29:34 AM UTC+2, Michael Grom wrote:
Reply all
Reply to author
Forward
0 new messages