简体   繁体   English

jBPM 6.5 + Tomcat 8 + Bitronix事务+ Oracle 11G配置| 无法提交会话java.lang.NullPointerException

[英]jBPM 6.5 + Tomcat 8 + Bitronix Transaction + Oracle 11G configuration | Could not commit session java.lang.NullPointerException

I have successfully configured jBPM 6.5 on tomcat 8 + Bitronix transaction manager + Oracle 11G by following the steps provided in this link https://apurvasingh67.wordpress.com/2014/03/03/how-to-install-jbpm6-on-tomcat7-x/ 我已按照此链接https://apurvasingh67.wordpress.com/2014/03/03/how-to-install-jbpm6-on-中提供的步骤,在tomcat 8 + Bitronix事务管理器+ Oracle 11G上成功配置了jBPM 6.5。 tomcat7-X /

Also, I managed to create a sample business process using script and user task. 另外,我设法使用脚本和用户任务创建了一个示例业务流程。

在此处输入图片说明

Now, when I tried to claim and complete the user task, I am getting null pointer exception. 现在,当我试图声明并完成用户任务时,我得到了空指针异常。

Can anyone throw some light on this please. 任何人都可以对此发表一些看法。

2017-03-17 16:22:25 WARN http-apr-9012-exec-10 bitronix.tm.twopc.Preparer - executing transaction with 0 enlisted resource

    2017-03-17 11:01:47 WARN http-apr-9012-exec-4 org.drools.persistence.SingleSessionCommandService - Could not commit session
    java.lang.NullPointerException
            at java.io.ByteArrayInputStream.<init>(ByteArrayInputStream.java:106)
            at org.drools.persistence.info.WorkItemInfo.getWorkItem(WorkItemInfo.java:116)
            at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.internalGetWorkItem(JPAWorkItemManager.java:213)
            at org.drools.persistence.jpa.processinstance.JPAWorkItemManager.completeWorkItem(JPAWorkItemManager.java:141)
            at org.drools.core.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:75)
            at org.drools.core.command.runtime.process.CompleteWorkItemCommand.execute(CompleteWorkItemCommand.java:35)
            at org.drools.core.command.impl.DefaultCommandService.execute(DefaultCommandService.java:36)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.drools.persistence.SingleSessionCommandService$TransactionInterceptor.execute(SingleSessionCommandService.java:604)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:82)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
            at org.drools.persistence.SingleSessionCommandService.execute(SingleSessionCommandService.java:397)
            at org.drools.core.command.impl.CommandBasedStatefulKnowledgeSession$1.completeWorkItem(CommandBasedStatefulKnowledgeSession.java:166)
            at org.jbpm.services.task.wih.ExternalTaskEventListener.processTaskState(ExternalTaskEventListener.java:61)
            at org.jbpm.services.task.wih.ExternalTaskEventListener.afterTaskCompletedEvent(ExternalTaskEventListener.java:107)
            at org.jbpm.services.task.events.TaskEventSupport.fireAfterTaskCompleted(TaskEventSupport.java:251)
            at org.jbpm.services.task.internals.lifecycle.MVELLifeCycleManager.taskOperation(MVELLifeCycleManager.java:386)
            at org.jbpm.services.task.impl.TaskInstanceServiceImpl.complete(TaskInstanceServiceImpl.java:188)
            at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:79)
            at org.jbpm.services.task.commands.CompleteTaskCommand.execute(CompleteTaskCommand.java:40)
            at org.jbpm.services.task.commands.CompositeCommand.execute(CompositeCommand.java:147)
            at org.jbpm.services.task.commands.TaskCommandExecutorImpl$SelfExecutionCommandService.execute(TaskCommandExecutorImpl.java:65)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.jbpm.services.task.persistence.TaskTransactionInterceptor.execute(TaskTransactionInterceptor.java:69)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.drools.persistence.jta.TransactionLockInterceptor.execute(TransactionLockInterceptor.java:73)
            at org.drools.core.command.impl.AbstractInterceptor.executeNext(AbstractInterceptor.java:41)
            at org.drools.persistence.jpa.OptimisticLockRetryInterceptor.execute(OptimisticLockRetryInterceptor.java:82)
            at org.jbpm.services.task.commands.TaskCommandExecutorImpl.execute(TaskCommandExecutorImpl.java:40)
            at org.jbpm.services.task.impl.command.CommandBasedTaskService.complete(CommandBasedTaskService.java:174)
            at org.jbpm.runtime.manager.impl.task.SynchronizedTaskService.complete(SynchronizedTaskService.java:119)
            at org.jbpm.kie.services.impl.UserTaskServiceImpl.complete(UserTaskServiceImpl.java:189)
            at org.jbpm.services.cdi.impl.UserTaskServiceCDIImpl$Proxy$_$$_WeldClientProxy.complete(UserTaskServiceCDIImpl$Proxy$_$$_WeldClientProxy.java)
            at org.jbpm.console.ng.ht.backend.server.TaskLifeCycleServiceImpl.complete(TaskLifeCycleServiceImpl.java:52)
            at org.jbpm.console.ng.ht.backend.server.TaskLifeCycleServiceImpl$Proxy$_$$_WeldClientProxy.complete(TaskLifeCycleServiceImpl$Proxy$_$$_WeldClientProxy.java)

在此处输入图片说明

在此处输入图片说明

Finally, After a long hauling effort, my boss (you know boss is always right :D) gave me a hint to try adding transaction synchronization registry to the CATALINA_OPTS 最后,经过长时间的努力,我的老板(您知道老板永远是对的:D)给了我一个提示,尝试将事务同步注册表添加到CATALINA_OPTS

-Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry -Djbpm.tsr.jndi.lookup =的java:comp / env的/ TransactionSynchronizationRegistry

After the changes, your tomcat setenv.sh or setenv.bat should look something like below. 更改之后,您的tomcat setenv.sh或setenv.bat应该如下所示。

set CATALINA_OPTS=-Xmx512M -XX:MaxPermSize=512m -Dbtm.root=%CATALINA_HOME% -Dbitronix.tm.configuration=%CATALINA_HOME%\\conf\\btm-config.properties -Djbpm.tsr.jndi.lookup=java:comp/env/TransactionSynchronizationRegistry -Djava.security.auth.login.config=%CATALINA_HOME%\\webapps\\jbpm-console\\WEB-INF\\classes\\login.config -Dorg.jboss.logging.provider=jdk -Dorg.kie.task.insecure=true -Dorg.kie.server.persistence.ds=java:comp/env/jdbc/jbpm -Dorg.kie.server.persistence.tm=org.hibernate.service.jta.platform.internal.BitronixJtaPlatform -Dorg.kie.server.id=tomcat-kieserver -Dorg.kie.server.location= http://localhost:8080/kie-server/services/rest/server -Dorg.kie.server.controller= http://localhost:8080/jbpm-console/rest/controller -Dkie.maven.settings.custom=/path/to/your/maven/settings.xml -Dorg.drools.server.filter.classes=true 设置CATALINA_OPTS = -Xmx512M -XX:MaxPermSize = 512m -Dbtm.root =%CATALINA_HOME%-Dbitronix.tm.configuration =%CATALINA_HOME%\\ conf \\ btm-config.properties -Djbpm.tsr.jndi.lookup = java:comp / env / TransactionSynchronizationRegistry -Djava.security.auth.login.config =%CATALINA_HOME%\\ webapps \\ jbpm-console \\ WEB-INF \\ classes \\ login.config -Dorg.jboss.logging.provider = jdk -Dorg.kie.task。 insecure = true -Dorg.kie.server.persistence.ds = java:comp / env / jdbc / jbpm -Dorg.kie.server.persistence.tm = org.hibernate.service.jta.platform.internal.BitronixJtaPlatform -Dorg。 kie.server.id = tomcat-kieserver -Dorg.kie.server.location = http:// localhost:8080 / kie-server / services / rest / server -Dorg.kie.server.controller = http:// localhost: 8080 / jbpm-console / rest / controller -Dkie.maven.settings.custom = / path / to / your / maven / settings.xml -Dorg.drools.server.filter.classes = true

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM