Process Definition Location in a WAR File
neilac333 Apr 16, 2008 10:56 AMI 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?
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
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.