异常总结

来源:互联网 发布:linux内核开发 编辑:程序博客网 时间:2024/05/16 15:38

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&amp;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页面问题