4 Replies Latest reply on May 17, 2008 12:10 AM by harpritt k

    Process Definition Location in a WAR File

    Neil C Novice

      I am attempting to deploy a Seam app that utilizes JBPM.  I have a single page definition file and a single process definition file.  Both are located, for the time being, at the root of my WAR file, and both are in my components.xml file in the proper places (without slashes or anything).


      When I deploy my WAR to WebLogic 9.2, the page definition file is processed correctly, but the process definition file is not.  I get a MalformedURLException when JBPM tries to find it.  What can I do to ensure that the process definition file is located correctly?  Why would one file be processed but not the other?


      As a corollary, I would like to put these files and others like them that come along in the future in their own directory relative to the root.  Is this possible?  How would I indicate that in components.xml?


      Thanks for your insight.

        • 1. Re: Process Definition Location in a WAR File
          Neil C Novice

          Here is the log:



          15 Apr 2008 17:24:14,075: INFO  javax.servlet.ServletContextListener - Welcome to Seam 2.0.0.GA
          15 Apr 2008 17:24:19,172: WARN  org.jboss.seam.init.Initialization - Did not install PojoCache due to NoClassDefFoundError: org/jboss/cache/TreeCache : org/jboss/system/ServiceMBeanSupport
          15 Apr 2008 17:24:36,057: WARN  org.hibernate.impl.SessionFactoryImpl - JTASessionContext being used with JDBCTransactionFactory; auto-flush will not operate correctly with getCurrentSession()
          15 Apr 2008 17:24:37,739: DEBUG org.jbpm.JbpmConfiguration - creating jbpm configuration from resource 'org/jboss/seam/bpm/jbpm.pageflow.cfg.xml'
          15 Apr 2008 17:24:37,769: DEBUG org.jbpm.JbpmConfiguration - loading defaults in jbpm configuration
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'default.jbpm.context'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.hibernate.cfg.xml'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.business.calendar'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.default.modules'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.converter'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.action.types'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.node.types'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.parsers'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.varmapping'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.mail.templates'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.byte.block.size'
          15 Apr 2008 17:24:37,830: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.mail.smtp.host'
          15 Apr 2008 17:24:37,840: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.task.instance.factory'
          15 Apr 2008 17:24:37,840: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.variable.resolver'
          15 Apr 2008 17:24:37,840: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.mail.address.resolver'
          15 Apr 2008 17:24:37,840: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.job.executor'
          15 Apr 2008 17:24:37,840: DEBUG org.jbpm.JbpmConfiguration - loading specific configuration...
          15 Apr 2008 17:24:37,850: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'default.jbpm.context'
          15 Apr 2008 17:24:37,870: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpmConfiguration'
          15 Apr 2008 17:24:37,950: INFO  org.jbpm.JbpmConfiguration - using jbpm configuration resource 'jbpm.cfg.xml'
          15 Apr 2008 17:24:37,950: DEBUG org.jbpm.JbpmConfiguration - loading defaults in jbpm configuration
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'default.jbpm.context'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.hibernate.cfg.xml'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.business.calendar'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.default.modules'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.converter'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.action.types'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.node.types'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.parsers'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.varmapping'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'resource.mail.templates'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.byte.block.size'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.mail.smtp.host'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.task.instance.factory'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.variable.resolver'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.mail.address.resolver'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpm.job.executor'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.JbpmConfiguration - loading specific configuration...
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'default.jbpm.context'
          15 Apr 2008 17:24:37,960: DEBUG org.jbpm.configuration.ObjectFactoryImpl - adding object info 'jbpmConfiguration'
          15 Apr 2008 17:24:38,000: DEBUG org.jbpm.configuration.JbpmContextInfo - creating jbpm context with service factories '[tx, message, scheduler, logging, persistence, authentication]'
          15 Apr 2008 17:24:38,010: DEBUG org.jbpm.JbpmContext - creating org.jbpm.JbpmContext@1af0784
          15 Apr 2008 17:24:38,010: DEBUG org.jbpm.JbpmContext - closing JbpmContext
          15 Apr 2008 17:24:38,020: DEBUG org.jbpm.db.hibernate.HibernateHelper - creating hibernate configuration resource 'hibernate.cfg.xml'
          15 Apr 2008 17:24:41,134: DEBUG org.jbpm.configuration.JbpmContextInfo - creating jbpm context with service factories '[tx, message, scheduler, logging, persistence, authentication]'
          15 Apr 2008 17:24:41,134: DEBUG org.jbpm.JbpmContext - creating org.jbpm.JbpmContext@1655285
          15 Apr 2008 17:24:41,234: ERROR org.jbpm.jpdl.xml.JpdlXmlReader - couldn't parse process definition
          org.dom4j.DocumentException: null Nested exception: null
               at org.dom4j.io.SAXReader.read(SAXReader.java:484)
               at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:58)
               at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:141)
               at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:180)
               at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:161)
               at org.jboss.seam.bpm.Jbpm.deployProcess(Jbpm.java:269)
               at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:252)
               at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:72)
               at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
               at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
               at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
               at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
               at org.jboss.seam.Component.callComponentMethod(Component.java:2074)
               at org.jboss.seam.Component.callCreateMethod(Component.java:1997)
               at org.jboss.seam.Component.newInstance(Component.java:1968)
               at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
               at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
               at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:95)
               at org.jboss.seam.init.Initialization.init(Initialization.java:555)
               at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34)
               at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:376)
               at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
               at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:121)
               at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:82)
               at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1609)
               at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:2764)
               at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:889)
               at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:333)
               at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204)
               at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:26)
          Nested exception: 
          java.net.MalformedURLException
               at java.net.URL.<init>(URL.java:601)
               at java.net.URL.<init>(URL.java:464)
               at java.net.URL.<init>(URL.java:413)
               at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:968)
               at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(XMLVersionDetector.java:184)
               at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:798)
               at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:764)
               at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:148)
               at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1242)
               at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133)
               at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:153)
               at org.dom4j.io.SAXReader.read(SAXReader.java:465)
               at org.jbpm.jpdl.xml.JpdlParser.parse(JpdlParser.java:58)
               at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:141)
               at org.jbpm.graph.def.ProcessDefinition.parseXmlInputStream(ProcessDefinition.java:180)
               at org.jbpm.graph.def.ProcessDefinition.parseXmlResource(ProcessDefinition.java:161)
               at org.jboss.seam.bpm.Jbpm.deployProcess(Jbpm.java:269)
               at org.jboss.seam.bpm.Jbpm.installProcessDefinitions(Jbpm.java:252)
               at org.jboss.seam.bpm.Jbpm.startup(Jbpm.java:72)
               at jrockit.reflect.VirtualNativeMethodInvoker.invoke(Ljava.lang.Object;[Ljava.lang.Object;)Ljava.lang.Object;(Unknown Source)
               at java.lang.reflect.Method.invoke(Ljava.lang.Object;[Ljava.lang.Object;I)Ljava.lang.Object;(Unknown Source)
               at org.jboss.seam.util.Reflections.invoke(Reflections.java:21)
               at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:125)
               at org.jboss.seam.Component.callComponentMethod(Component.java:2074)
               at org.jboss.seam.Component.callCreateMethod(Component.java:1997)
               at org.jboss.seam.Component.newInstance(Component.java:1968)
               at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304)
               at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278)
               at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:95)
               at org.jboss.seam.init.Initialization.init(Initialization.java:555)
          15 Apr 2008 17:24:41,245: DEBUG org.jbpm.JbpmContext - closing JbpmContext
          15 Apr 2008 17:24:41,325: DEBUG org.jbpm.configuration.JbpmContextInfo - creating jbpm context with service factories '[tx, message, scheduler, logging, persistence, authentication]'
          15 Apr 2008 17:24:41,325: DEBUG org.jbpm.JbpmContext - creating org.jbpm.JbpmContext@165ec73
          15 Apr 2008 17:24:41,325: DEBUG org.jbpm.JbpmContext - closing JbpmContext
          
          


          • 2. Re: Process Definition Location in a WAR File
            Neil C Novice

            Looking at the Todo and DVDStore examples, the deployments are EAR files.  The docs only make mention of an EAR deployment as well.  Does this mean that I can use JBPM with Seam only when deploying to an EAR?


            Thanks.


            • 3. Re: Process Definition Location in a WAR File
              Pete Muir Master

              Nothing to do with not finding the file but some parsing error of your jpdl.

              • 4. Re: Process Definition Location in a WAR File
                harpritt k Novice

                I just got this one.


                1) check the reference to yout Jpdl process definition is corect in your components.xml


                2) make sure the process diagram is correct.....mine was jibberish the first time round. Do this - nick the process definition from the DVD example.


                Im happy again.