1.MyEclipse创建应用后,扩展Spring与Hibernate功能,并将这两个功能整合,默认情况下会出现以下两个问题:
Class 'org.apache.commons.dbcp.BasicDataSource' not found
Class 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found
解决方法是导入以下4个包。
Spring Persistence JDBC libraries
Spring Persistence Core libraries
Spring AOP libraries
Spring Core libraries
Spring整合Hibernate需要用到Spring Persistence JDBC libraries包,这个包需要上述其他三个包的支持。
2.编写Spring监听类会出现Class 'org.springframework.web.context.ContextLoaderListener' not found需要导入Spring Web libraries,这个是Spring实现监听的类库。
3.应用部署到WebLogic时,Spring配置文件要和web.xml文件在同一文件夹,否则会提示配置文件无法找到。
在web.xml中加入如下语句,制定配置文件路径可以解决配置文件调用问题。
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/classes/applicationContext.xml</param-value>
</context-param>
4.Hibernate3.x开发的应用使用批量查询时,部署到WebLogic会出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken
将以下语句添加到Hibernate配置文件的<property name="hibernateProperties">项中:
<prop key="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</prop>
Hibernate3.x采用新的HQL/SQL查询翻译器具有批量更新功能,在Hibernate的配置文件中,hibernate.query.factory_class属性用来选择查询翻译器。
5.使用Spring和Hibernate开发的应用部署时会出现 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined
解决的方法是,不添加Spring自带类库asm-2.xxx.jar。这个库与Hibernate中的多个类库冲突,删除即可。
6.通过MyEclipse向服务器部署web应用,MyEclipse会自动向应用的lib文件夹中导入关联的库文件,而不用再在开发时就把库文件导入到应用中。
通过SSH开发的应用能够在tomcat6和weblogic10.3中正常运行。