[Design of JBoss jBPM] - Problems , when inserting data from the database.
by mr.sathya
Hi Friends and Kukultjee sir,
I am new to jbpm.Hope u will help me in solving this Problem..
I am using Jbpm-3.1.4 and Jboss 4.0.2 as apllication server.I developed
following par file and it is running successfully with hardcoding values...
Now,what i am doing is i am inserting the values from the database using
stored procedure directly to the 'PMAcceptence' node which contains
three textboxes i.e projectname,plan status and commentByPm.after
executing the storedprocedure the corresponding values are populated in
these textboxes..Up to Now..it's Ok..But after clicking the 'accept' button
it is generating the following errors..
<!--Processdefinition.xml-->
<?xml version="1.0" encoding="UTF-8"?><process-definition
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://jbpm.org/xsd/jpdl-3.0.xsd"
name="DocumentWorkFlow">
<start-state name="DocumentWorkFlow">
</start-state>
<task-node name="PMAcceptence">
</task-node>
<task-node name="PMRejectionReason">
</task-node>
<task-node name="SBUAcceptence">
</task-node>
<task-node name="SBURejectionReason">
</task-node>
<task-node name="FMAcceptence">
</task-node>
<task-node name="DocumentApproved">
</task-node>
<task-node name="DocumentRejected">
</task-node>
<end-state name="Stop"></end-state>
</process-definition>
exception stacktrace:
14:41:25,436 DEBUG [JbpmContext] closing JbpmContext
14:41:25,436 DEBUG [Services] closing service 'persistence': org.jbpm.persistence.db.DbPersistenceService@19707
14:41:25,436 DEBUG [DbPersistenceService] committing hibernate transaction
14:41:25,452 INFO [STDOUT] couldn't commit hibernate session
14:41:25,452 DEBUG [DbPersistenceService] closing hibernate session
14:41:25,452 DEBUG [Services] closing service 'logging': org.jbpm.logging.db.DbLoggingService@6258e1
14:41:25,452 DEBUG [Services] closing service 'authentication': org.jbpm.security.authentication.DefaultAuthenticationSe
rvice@b9242e
14:41:25,452 ERROR [[FacesServlet]] Servlet.service() for servlet FacesServlet threw exception
javax.faces.FacesException: Error calling action method of component with id taskform:transitionButton
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:74)
at javax.faces.component.UICommand.broadcast(UICommand.java:106)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:90)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:164)
at org.apache.myfaces.lifecycle.LifecycleImpl.invokeApplication(LifecycleImpl.java:271)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:86)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:94)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jbpm.webapp.filter.AuthenticationFilter.doFilter(AuthenticationFilter.java:56)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jbpm.web.JbpmContextFilter.doFilter(JbpmContextFilter.java:83)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jbpm.webapp.filter.LogFilter.doFilter(LogFilter.java:62)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:81)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:153)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
at java.lang.Thread.run(Thread.java:595)
Caused by: javax.faces.el.EvaluationException: Exception while invoking expression #{taskBean.saveAndClose}
at org.apache.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:153)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:63)
... 34 more
Caused by: org.jbpm.graph.def.DelegationException
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:247)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.getInitializedSwimlaneInstance(TaskMgmtInstance.java:202)
at org.jbpm.taskmgmt.exe.TaskInstance.assign(TaskInstance.java:202)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.createTaskInstance(TaskMgmtInstance.java:157)
at org.jbpm.graph.node.TaskNode.execute(TaskNode.java:177)
at org.jbpm.graph.def.Node.enter(Node.java:321)
at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$1b65fd46.enter()
at org.jbpm.graph.def.Transition.take(Transition.java:129)
at org.jbpm.graph.def.Node.leave(Node.java:399)
at org.jbpm.graph.node.TaskNode.leave(TaskNode.java:213)
at org.jbpm.graph.def.Node$$FastClassByCGLIB$$d187eeda.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
at org.jbpm.graph.def.Node$$EnhancerByCGLIB$$1b65fd46.leave()
at org.jbpm.graph.exe.Token.signal(Token.java:181)
at org.jbpm.graph.exe.Token.signal(Token.java:149)
at org.jbpm.graph.exe.Token$$FastClassByCGLIB$$74df1c6e.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
at org.jbpm.graph.exe.Token$$EnhancerByCGLIB$$82f38682.signal()
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:469)
at org.jbpm.taskmgmt.exe.TaskInstance.end(TaskInstance.java:408)
at org.jbpm.taskmgmt.exe.TaskInstance$$FastClassByCGLIB$$cb2c21af.invoke()
at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
at org.hibernate.proxy.CGLIBLazyInitializer.intercept(CGLIBLazyInitializer.java:161)
at org.jbpm.taskmgmt.exe.TaskInstance$$EnhancerByCGLIB$$7b99ebe5.end()
at org.jbpm.webapp.bean.TaskBean.saveAndClose(TaskBean.java:189)
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.myfaces.el.MethodBindingImpl.invoke(MethodBindingImpl.java:129)
... 35 more
Caused by: org.jbpm.identity.assignment.ExpressionAssignmentException: couldn't resolve assignment expression 'user(Aari
f)'
at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:104)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignmentDelegation(TaskMgmtInstance.java:259)
at org.jbpm.taskmgmt.exe.TaskMgmtInstance.performAssignment(TaskMgmtInstance.java:228)
... 69 more
Caused by: java.lang.NullPointerException
at org.jbpm.identity.hibernate.IdentitySession.getUserByName(IdentitySession.java:168)
at org.jbpm.identity.assignment.ExpressionAssignmentHandler.getUserByName(ExpressionAssignmentHandler.java:226)
at org.jbpm.identity.assignment.ExpressionAssignmentHandler.resolveFirstTerm(ExpressionAssignmentHandler.java:15
6)
at org.jbpm.identity.assignment.ExpressionAssignmentHandler.assign(ExpressionAssignmentHandler.java:80)
... 71 more
Waiting 4 ur response and Thanx in advance....
-sathya
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048627#4048627
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4048627
16 years, 11 months
[Design of JBossCache] - Re: Excessive type safety warnings ...
by genman
The state transfer classes, notification classes, marshaling, cache loaders, interceptors which use Fqn and Node need some sort of parameters... Or perhaps maybe wildcards or something.
So, for example, you have a CacheStoreInterceptor:
| public class CacheLoaderInterceptor extends BaseCacheLoaderInterceptor implements CacheStoreInterceptorMBean
parameterized, needs to be something like:
| public class CacheLoaderInterceptor<K, V, F> extends BaseCacheLoaderInterceptor<K, V, F> implements CacheStoreInterceptorMBean
Where K and V are the Node key and value, and you have to include the Fqn type as well.
Actually, I'm not really any sort of generics expert. There might be some way to use wildcards or something to hide all this.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048448#4048448
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4048448
16 years, 11 months
[Design of Messaging on JBoss (Messaging/JBoss)] - Re: Grouping of messages with JMSXGroupId(JBMESSAGING-375)
by timfox
"hegsti" wrote : Hi, I'm trying to do my first contribution to JBoss Messaging so be nice :)
| I worked on a project last year where message groups (messages with the same group id always go to the same consumer on a queue).
| would have been really useful. I just finished a working proof of concept, which I hope to complete with help and feedback.
|
Great. Message groups are a nice feature that have been on our road map for some time. http://jira.jboss.com/jira/browse/JBMESSAGING-375
anonymous wrote :
| To continue to support the default round robin routing when JMSXGroupID is not supplied, I modified the existing RoundRobinPointToPointRouter to route based on given JMSXGroupID when supplied.
|
I agree it should be based on the RoundRobinRouter, but I would prefer to see it implemented in its own class e.g. GroupingRoundRobinPointToPointRouter. Maybe you can extend RoundRobinPointToPointRouter?
anonymous wrote :
| The Delivery handle(...) now behaves like this:
| ..
| ..
| get the reciver by round robin. if a groupId is given, try to see if a receiver is already assigned to handle this group.
| If it is, use this to deliver.
| Else bind the receiver given by round robin to the groupId in the message.
| deliver using this receiver.
|
| If the receiver is broken, remove the binding between the current receiver and the groupId.
|
| Where does the message go, if the receiver is broken?
| ...
| ...
|
| This approach will ensure that round robin works as before, and that each consumer will have an equal chance to be bound to spesific groups. If a receiver is broken, the mapping will be removed and a new receiver will be selected to handle the group.
|
|
Ok, makes sense.
anonymous wrote :
| To support a large number of groups in an efficient way, I decided not to use some kind of map which grows for each new group that needs a mapping to a receiver.
|
Personally I would just use a HashMap. HashMaps work on pretty much the same principle as you are suggesting anyway: I.e. they maintain an array and use the hashCode to detemine the lookup in the array - also they manage their own resizing so you don't have to worry about it.
I would be surprised if a HashMap was much slower than what you are suggesting.
I would be careful of doing premature optimisations.
Thanks Stian
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4048447#4048447
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4048447
16 years, 11 months