Spring+Hibernate+Websphere5.0经验一则

环境Spring1.1.3,Hibernate 2.1.8, Websphere5.01

hbm文件采用通配符获取:

<bean class="com.wolfsquare.core.hibernate.DefaultSessionFactoryBean" id="sessionFactory">
  <property name="dataSource"><ref bean="dataSource"></property>
  <property name="mappingLocations">
   <value>classpath:/**/*.hbm.xml</value>
  </property>
  <property name="hibernateProperties"><ref bean="hibernateProperties"></property>
 </bean>

问题症状:

应用启动报错说不能重复定义某类,去掉该类后仍然报下一个类重复定义。

仔细查看Log输出发现,所有的hbm文件均找到了两份 -_-!!!

项目组认为应该是websphere不太厚道,在classpath中使用了多处目录(web-inf & classes),并以这些目录为根进行递归搜索匹配文件,可是如果这些目录有包含关系,WebSphere就没有处理重复查找的文件了。

于是在以上配置中改为:

<bean class="com.wolfsquare.core.hibernate.DefaultSessionFactoryBean" id="sessionFactory">
  <property name="dataSource"><ref bean="dataSource"></property>
  <property name="mappingLocations">
   <value>classpath:/classes/**/*.hbm.xml</value>
  </property>
  <property name="hibernateProperties"><ref bean="hibernateProperties"></property>
 </bean>

问题虽然解决了,可是tomcat中却又无效了。 :(

什么时候,企业应用才能一次拷贝,到处运行啊~~

你可能感兴趣的:(spring,bean,Hibernate,企业应用,websphere)