[JBoss jBPM] - org.jbpm.JbpmException:
by help_eachother
Hi,
I am trying to embed jBPM in my web application.
I am able to start execution of a process definition and able to move the process instance to next state using the following code snippet.
|
| ProcessDefinition processDefinition = ProcessDefinition.parseXmlString(my_process_defiantion);
| / Let's start a new execution for the process definition.
| ProcessInstance processInstance =
| new ProcessInstance(processDefinition);
| Token token = processInstance.getRootToken();
| processInstance.signal();
|
|
I beleive i need to change the jbpm.cfg.xml for persisting the jBPM process definition infomation. Please correct , if i am wrong in my assumption.
So , if i change blank jbpm.cfg.xml to following, I am getting error message.
jbpm.cfg.xml
| <jbpm-configuration>
| <service name='persistence'
| factory='org.jbpm.persistence.db.DbPersistenceServiceFactory' />
| <service name='message'
| factory='org.jbpm.msg.db.DbMessageServiceFactory' />
| <service name='scheduler'
| factory='org.jbpm.scheduler.db.DbSchedulerServiceFactory' />
| <service name='logging'
| factory='org.jbpm.logging.db.DbLoggingServiceFactory' />
| <service name='authentication'
| factory='org.jbpm.security.authentication.DefaultAuthenticationServiceFactory' />
|
| </jbpm-configuration>
|
|
Error message
| servlet.service() for servlet default threw exception
| org.jbpm.JbpmException: no ObjectInfo class specified for element 'service'
| at org.jbpm.configuration.ObjectFactoryParser.parse(ObjectFactoryParser.java:139)
| at org.jbpm.configuration.ObjectFactoryParser.parseElements(ObjectFactoryParser.java:117)
| at org.jbpm.configuration.ObjectFactoryParser.parseElementsStream(ObjectFactoryParser.java:110)
| at org.jbpm.JbpmConfiguration.parseObjectFactory(JbpmConfiguration.java:316)
| at org.jbpm.JbpmConfiguration.getInstance(JbpmConfiguration.java:280)
| at org.jbpm.JbpmConfiguration.getInstance(JbpmConfiguration.java:256)
| at org.jbpm.JbpmConfiguration$Configs.getObjectFactory(JbpmConfiguration.java:400)
| at org.jbpm.JbpmConfiguration$Configs.getObject(JbpmConfiguration.java:412)
| at org.jbpm.JbpmConfiguration$Configs.getString(JbpmConfiguration.java:416)
| at org.jbpm.graph.def.ProcessDefinition.createNewProcessDefinition(ProcessDefinition.java:97)
| at org.jbpm.jpdl.xml.JpdlXmlReader.readProcessDefinition(JpdlXmlReader.java:133)
| at org.jbpm.graph.def.ProcessDefinition.parseXmlString(ProcessDefinition.java:143)
| at com.jbpm.examples.action.VaneetActionTest.testTransitionAction(VaneetActionTest.java:50)
| at com.crisil.action.bd.Login.execute(Login.java:52)
| 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 com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
| at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
| at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
| at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
| at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
| at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:167)
| at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
| at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
| at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
| at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
| at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
| at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
| at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
| at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
| at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
| at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
| at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
| at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
| at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
| at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
| at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
| at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
| at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
| at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
| at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
| at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
| at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
| at java.lang.Thread.run(Thread.java:595)
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4138517#4138517
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4138517
18 years, 1 month
[Messaging, JMS & JBossMQ] - Bug: Injected EJB objects instantiated on every MDB call
by doktora
It seems to me that a new instance of the EJBs injected in an MDB is created every time the MDB processes a message.
Below is the code modifications I've made to the EJB3 Trailblazer to verify this. A RecordManagerBean object is created every time the onMessage method in the CalculatorMDB is called as can be seen from the console printout of the postConstruct method.
This can have serious implications on memory consumption in a production environment.
I've added the following lines to this file in the EJB3 Trailblazer source code:
./src/trail/injection/RecordManagerBean.java
import javax.annotation.PostConstruct;
| import javax.annotation.PreDestroy;
| import javax.ejb.PostActivate;
| import javax.ejb.PrePassivate;
| import org.jboss.logging.Logger;
...
private static final Logger log = Logger.getLogger(RecordManagerBean.class);
| @PostConstruct public void postConstruct() { log.info("++++++++++++ postConstruct +++++++++++ "); }
| @PreDestroy public void preDestroy() { log.info("preDestroy **********"); }
| @PrePassivate public void prePassivate() { log.info("prePassivate **********"); }
| @PostActivate public void postActivate() { log.info("postActivate **********"); }
postConstruct is called on every MDB call, none of the other methods seem to be executed ever.
Is this a bug or am I missing something?
Cheers
Dok
P.S.
JBoss [Trinity] 4.2.1.GA (build: SVNTag=JBoss_4_2_1_GA date=200707131605)
Java version: 1.5.0_13,Apple Computer, Inc.
OS-System: Mac OS X 10.4.11,i386
JBoss is started with -c all and the EJB3Trail.jar is put in all/farm/
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4138516#4138516
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4138516
18 years, 1 month
[JBoss jBPM] - Check if a process definition is deployed
by rodosa
Hello!!
I'm trying to check if an process definition is deployed. I use this code to check it:
| Definition definition = null;
|
| ExecutionService executionService =jbpmServiceFactory.openExecutionService("admin");
| definition = executionService.getLatestDefinition( "altaProyecto" );
| executionService.close();
|
|
My process definition is very simple. It hasn't anything special. Only 3 tasks that don't do any.
| <?xml version="1.0" encoding="UTF-8"?>
|
| <process-definition xmlns="" name="altaProyecto">
|
| <swimlane name="boss">
| <delegation class="org.jbpm.delegation.assignment.ActorAssignmentHandler">admin</delegation>
| </swimlane>
|
|
| <start-state name="Introducir datos del proyecto">
| <transition to="task-node1" name="to task-node1"></transition>
| </start-state>
|
|
| <task-node name="task-node1">
| <transition to="Fin"></transition>
| </task-node>
|
|
| <end-state name="Fin"></end-state>
|
|
| </process-definition>
|
but it is thrown the following exception:
| 12:45:52,811 ERROR [LogInterceptor] RuntimeException in method: public abstract
| boolean sessionJbpm.JbpmFacadeRemote.estaDesplegado(java.lang.String) throws jav
| a.rmi.RemoteException:
| java.lang.NullPointerException
| at org.jbpm.JbpmServiceFactory.openExecutionService(JbpmServiceFactory.j
| ava:57)
| at sessionJbpm.JbpmFacade.estaDesplegado(JbpmFacade.java:74)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
| java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
| sorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.invocation.Invocation.performCall(Invocation.java:359)
| at org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(S
| tatelessSessionContainer.java:237)
| at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invo
| ke(CachedConnectionInterceptor.java:158)
| at org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(Stat
| elessSessionInstanceInterceptor.java:169)
| at org.jboss.ws.server.ServiceEndpointInterceptor.invoke(ServiceEndpoint
| Interceptor.java:64)
| at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidation
| Interceptor.java:63)
| at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInte
| rceptor.java:121)
| at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxIntercep
| torCMT.java:350)
| at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:1
| 81)
| at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.
| java:168)
| at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:205)
| at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFacto
| ryFinderInterceptor.java:136)
| at org.jboss.ejb.SessionContainer.internalInvoke(SessionContainer.java:6
| 48)
| at org.jboss.ejb.Container.invoke(Container.java:954)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
| java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
| sorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatch
| er.java:155)
| at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
| at org.jboss.mx.server.Invocation.invoke(Invocation.java:86)
| at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.
| java:264)
| at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
| at org.jboss.invocation.jrmp.server.JRMPInvoker$MBeanServerAction.invoke
| (JRMPInvoker.java:819)
| at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:
| 420)
| at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
| at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
| java:39)
| at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
| sorImpl.java:25)
| at java.lang.reflect.Method.invoke(Method.java:585)
| at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
| at sun.rmi.transport.Transport$1.run(Transport.java:153)
| at java.security.AccessController.doPrivileged(Native Method)
| at sun.rmi.transport.Transport.serviceCall(Transport.java:149)
| at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:4
| 66)
| at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport
| .java:707)
| at java.lang.Thread.run(Thread.java:595)
|
Exist any method than check if a process definition is deployed? How I have to do for check this? Have I to execute a query that check if exist in the DB??
Thanks,
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4138512#4138512
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4138512
18 years, 1 month