Coohx 2011-08-29
空指针的问题
在tomcat下正常的应用到weblogic下发现@Autowire注入的bean为空。经过验证,发现是web.xml中配置spring上下文参数时用了例如classpath:applicationContext*.xml的写法,weblogic不能识别。解决办法就是将通配符*号去掉
数据库源的问题
当配置容器数据源后,需要在spring中做对应的配置
<!-- 数据源配置,使用应用服务器的数据库连接池 --> <!--<jee:jndi-lookup id="dataSource" jndi-name="java:comp/env/jdbc/ExampleDB" />--> <jee:jndi-lookup id="dataSource" jndi-name="test" />
发现提示不成功,找出原因是数据库驱动的原因。当在weblogic中配置数据时,选择com.mysql.Driver时会出错,而选择org.gjt.mm.mysql.Driver时却可以。
hibernate查询的问题
当解决数据源的问题后,在查询数据库是时,又报ClassNotFoundException:org.hibernate.hql.ast.HqlToken
解决方法:在spring的applicationContextxml中的hibernateProperties属性系列中加上一个属性hibernate.query.factory_class,值为org.hibernate.hql.classic.ClassicQueryTranslatorFactory。
原因:weblogic.jar中已经有了一个antlr.jar的版本,导致应用中hibernate3.jar中用到的antlr.jar不能找到,导致异常。