1.could not execute query; nested exception is org.hibernate.exception.SQLGrammarException: could not execute query
原因是spring管理hibernate没配置好,应如下配置
<!--
dataSource
-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" >
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/tts?useUnicode=true&characterEncoding=gbk"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
<!--
sessionFactory
-->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>tts/entity/Statistics.hbm.xml</value>
<value>tts/entity/Student.hbm.xml</value>
<value>tts/entity/Teacher.hbm.xml</value>
<value>tts/entity/Tests.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<value>
hibernate.dialect=org.hibernate.dialect.MySQLDialect
</value>
</property>
</bean>
开始是单这样配置的所以出错
<!--<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
</bean>-->
2,ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from tts.entity.Student where stuName= ?]; nested exception is org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken [from tts.entity.Student where stuName= ?]
解决方法:
1.是在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory,这样就可以解决问题了。
但是部分功能会有问题,譬如
但本系在批量删除和更新会有问题,本系统不采用
2.将antlr-2.7.5H3.jar到Weblogic的pre_Classpath :用WinRar或Winzip打开C:\bea\weblogic81\server\lib\weblogic.jar 删除里面的antlr目录, 然后再antlr-2.7.5H3.jar放在weblogic.jar的同一目录(注:替换之后没做做过严格测试,尚不知是否有后遗症)
3. 1、拷贝Hibernate3里带的包antlr-2.7.5H3.jar到%WL_HOME%\server\lib下
2、修改% mydomain% \ startWebLogic.cmd :
在set CLASSPATH之前加上下面一句:
set PRE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;
在set CLASSPATH之后加上下面一句:
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
一切OK!
具体原因可参照此页:http://dev2dev.bea.com/blog/pmalani/archive/2005/07/configuring_web.html
http://blog.csdn.net/jiangfeng861016/article/details/6443753
可我的还不行啊,我无语了,干脆换tomcat吧,说换就换,一切ok。这尼玛,404,我连主页都访问不了,极其无奈,心灰意冷之下还是rollback吧,我又用回weblogic,重新启动部署看看,想想最起码不报404吧,果然不报。然后习惯性的继续点下去,这出现奇迹了,没有问题了。。。。。。
3.Invalid action class configuration that references an unknown class named
如果你的spring没配错,那就是你的jsp页面问题