1. 问题一
(1) [color=red]Caused by: org.hibernate.HibernateException: Errors in named queries:
TasksAssignedAsPotentialOwnerWithGroups, TasksOwned, [/color]TasksAssignedAsPotentialOwner,
TasksAssignedAsRecipient, TasksAssignedAsTaskStakeholder, TasksAssignedAsExcludedOwner,
TasksAssignedAsPotentialOwnerByGroup, GetSubTasksByParentTaskId, TasksAssignedAsTaskInitiator,
TasksAssignedAsBusinessAdministrator, SubTasksAssignedAsPotentialOwner
at org.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:407)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1341)
at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:867)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:669)
... 55 more


(2) [color=red]java.lang.IllegalArgumentException: Named query not found: UnescalatedDeadlines[/color]
at org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:108)
at org.jbpm.task.service.TaskService.<init>(TaskService.java:109)
at org.jbpm.task.service.TaskService.<init>(TaskService.java:92)

解决办法:src目录下加入 META-INF 文件夹, 将 jbpm-human-task-5.2.0.Final.jar 中的 Taskorm.xml 复制到 META-INF 下面, 并重命名为 orm.xml.


2. 问题二

[color=red]java.lang.RuntimeException: Unable To initialise TaskService, could not find Operations DSL[/color]
at org.jbpm.task.service.TaskService.<init>(TaskService.java:128)
at org.jbpm.task.service.TaskService.<init>(TaskService.java:92)


==> 原因是 jbpm-human-task-5.2.0.Final.jar 中的 org.jbpm.task.service 包中没有 operations-dsl.mvel 文件。
如下源代码:

// Search operations-dsl.mvel, if necessary using superclass if TaskService is subclassed

 InputStream is = null;

 for (Class c = getClass(); c != null; c = c.getSuperclass()) {

 is = c.getResourceAsStream("operations-dsl.mvel");

 if (is != null) {

 break;

 }

 }

 if (is == null) {

 throw new RuntimeException("Unable To initialise TaskService, could not find Operations DSL");

 }

 Reader reader = new InputStreamReader(is);

 try {

 operations = (Map<Operation, List<OperationCommand>>) eval(toString(reader), vars);

 } catch (IOException e) {

 throw new RuntimeException("Unable To initialise TaskService, could not load Operations DSL");

 }



解决办法:在工程中新建包结构org.jbpm.task.service,并在其中加入从jbpm-human-task-5.1.0.Final.jar中的org.jbpm.task.service中的operations-dsl.mvel。
或者重新打包 jbpm-human-task-5.2.0.Final.jar 且在其中加入 operations-dsl.mvel 到 org.jbpm.task.service 包中。


3. 问题三
[color=red]java.lang.LinkageError: loader constraint violation: when resolving interface method "javax.servlet.jsp.JspApplicationContext.getExpressionFactory()Ljavax/el/ExpressionFactory;" [/color]the class loader (instance of org/apache/jasper/servlet/JasperLoader) of the current class, org/apache/jsp/index_jsp, and the class loader (instance of org/apache/catalina/loader/StandardClassLoader) for resolved class, javax/servlet/jsp/JspApplicationContext, have different Class objects for the type javax/el/ExpressionFactory used in the signature

解决办法:删除 el-api.jar 即可。

4. 问题四

[color=red]ERROR drools.persistence.SingleSessionCommandService.rollbackTransaction - Could not commit session
java.lang.IllegalArgumentException: Named query not found: ProcessInstancesWaitingForEvent[/color]
at org.hibernate.ejb.AbstractEntityManagerImpl.createNamedQuery(AbstractEntityManagerImpl.java:108)
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:597)


解决办法: src --> META-INF --> orm.xml 中加入

<named-query name="ProcessInstancesWaitingForEvent">

 <query>

 select

 processInstanceInfo.processInstanceId

 from

 ProcessInstanceInfo processInstanceInfo join processInstanceInfo.eventTypes eventTypes

 where

 eventTypes = :type

 </query>

 </named-query>



[b][color=red]整合Hibernate4.2.x的时候碰到的问题[/color][/b]

1. [color=red]Could not determine type for: java.util.Set, at table: ProcessInstanceInfo, for columns: [org.hibernate.mapping.Column(eventTypes)][/color]


[url]https://community.jboss.org/message/643956[/url]Peter Brewer的解决方

2. [color=red]javax.persistence.spi.PersistenceUnitInfo.getValidationMode() [/color]
解决一: [url]http://openjpa.208410.n2.nabble.com/Error-running-on-Spring-3-td5781867.html[/url]

[color=blue]我是这样解决[/color]:
使用这个http://mvnrepository.com/artifact/org.hibernate.javax.persistence/hibernate-jpa-2.0-api,替换jpa1.0的包。
先使用:

<dependency>
			<groupId>org.hibernate.javax.persistence</groupId>
			<artifactId>hibernate-jpa-2.0-api</artifactId>
			<version>1.0.1.Final</version>
		</dependency>


再排除依赖


<dependency>
			<groupId>org.drools</groupId>
			<artifactId>drools-spring</artifactId>
			<version>${drools.version}</version>
			<exclusions>
				<exclusion>
					<groupId>javax.persistence</groupId>
					<artifactId>persistence-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>


drools-persistence-jpa,drools-spring,jbpm-human-task, jbpm-bam都要排除


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6