spring jbpm整合出错 ?

kingjava 2007-06-27 10:32:25
在看了多位高手的帖子后,
决定自己整合spring+jbpm
但出错了。


环境如下:

eclipse 3.2 +myeclipse 5.0 +hibernate3.0/3.2+jbpm3.1.4


junit 测试 出错 ,错误信息如下:



org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory0' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.jbpm.identity.Group.children
org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.jbpm.identity.Group.children
at org.hibernate.cfg.Mappings.addCollection(Mappings.java:123)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:1965)
at org.hibernate.cfg.HbmBinder.createClassProperties(HbmBinder.java:1940)
at org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:324)
at org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:238)
at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:109)
at org.hibernate.cfg.Configuration.add(Configuration.java:385)
at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:426)
at org.springframework.orm.hibernate3.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:679)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1091)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:396)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:233)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:145)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:277)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:313)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:87)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:72)
at com.ltong.tax.common.AppContext.<init>(AppContext.java:19)
at com.ltong.tax.common.AppContext.getInstance(AppContext.java:12)
at com.ltong.tax.common.AppContextTest.testGetInstance(AppContextTest.java:9)
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:324)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestReference.run(JUnit3TestReference.java:128)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:460)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:673)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:386)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:196)



hibernate 3.0 /3.2 都用过,
都不行 ,

请高手指教!

...全文
313 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
kingjava 2007-07-01
  • 打赏
  • 举报
回复
问题 ,解决了 ,
问题出在 : <property name="mappingLocations">
<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
</property>
我在 工程里面 了 编译好的类包 和源文件包,
所以系统就加载配置文件两次,就 报那个
Duplicate collection role mapping
的错误 ,
把 重复的包去掉,问题解决 。

谢谢楼上的。
angelseyes 2007-06-29
  • 打赏
  • 举报
回复
检查你的mapping文件org.jbpm.identity.Group.children的配置
angelseyes 2007-06-28
  • 打赏
  • 举报
回复
applicationContext.xml 贴出来sessionFactory0 配置有问题
kingjava 2007-06-28
  • 打赏
  • 举报
回复
原来我的 jdk是 1.4的
kingjava 2007-06-28
  • 打赏
  • 举报
回复
我分析了一下 ,
错误信息为:
-------------------------------------------------
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory0' defined in class path resource [applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.jbpm.identity.Group.children
org.hibernate.DuplicateMappingException: Duplicate collection role mapping org.jbpm.identity.Group.children
-------------------------------------------------

大概的意思是在初始化 bean(sessionFactory0)的时候出错,

错误信息由spring 抛出,但错误信息是hibernate的异常.
"sessionFactory0" 还是"sessionFactory" 应该问题不大,
毕竟只是一个引用名字而已,.


还有一个信息是,我在单独使用jbpm测试的时候,
是没有任何问题的.hibernate可以正确加载.


刚才我换了 jdk1.6,
结果还是相同的错误

kingjava 2007-06-28
  • 打赏
  • 举报
回复
配置如下:


-----------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">

<beans>
<bean id="dataSource0" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName">
<value>com.mysql.jdbc.Driver</value>
</property>
<property name="url">
<value>jdbc:mysql://localhost:3306/test</value>
</property>
<property name="username">
<value>root</value>
</property>
<property name="password">
<value/>
</property>
</bean>
<!-- Hibernate SessionFactory -->

<bean id="sessionFactory0" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource">
<ref local="dataSource0"/>
</property>
<property name="mappingLocations">
<value>classpath*:/org/jbpm/**/*.hbm.xml</value>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">0</prop>
</props>
</property>
</bean>
<!-- Transaction manager for a single Hibernate SessionFactory (alternative to JTA) -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory">
<ref local="sessionFactory0"/>
</property>
</bean>

<!-- reading jBPM process definitions -->
<bean id="websaleWorkflow1" class="org.springmodules.workflow.jbpm31.definition.ProcessDefinitionFactoryBean">
<property name="definitionLocation" value="processdefinition.xml"/>
</bean>
<!-- jBPM configuration-->
<bean id="jbpmConfiguration" class="org.springmodules.workflow.jbpm31.LocalJbpmConfigurationFactoryBean">

<property name="sessionFactory" ref="sessionFactory0"/>
<property name="configuration" value="jbpm.cfg.xml"/>
<property name="processDefinitions">
<list>
<ref local="websaleWorkflow1"/>
</list>
</property>
<property name="createSchema" value="true"/>
</bean>
<!-- jBPM template -->
<bean id="jbpmTemplate" class="org.springmodules.workflow.jbpm31.JbpmTemplate">
<constructor-arg index="0" ref="jbpmConfiguration"/>
<constructor-arg index="1" ref="websaleWorkflow1"/>
</bean>

</beans>
------------------------------------------------

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧