Exception异常

1、Hibernate 异常org.hibernate.LazyInitializationException: could not initialize proxy - no Session

这是一个lazy使用后的Exception,使用迟时加载,在session(hibernate里的session),关闭后使用该对象的未加载变量,也就是说session已经关闭,没有保存到内存中,然后你使用了,导致该异常。

解决方法:

方法1.用openSessionInView 

方法2.把这个类的延迟加载禁掉

例:

<!-- lazy="false" 取消延迟加载,解决异常LazyInitializationException:could not initialize proxy - no Session--> <many-to-one name="trade_id" class="com.cr.trade.model.Trade" column="trade_id" lazy="false"> </many-to-one>

-------------------------------------------------------------------------------------------------------------------------------------

2、Hibernate 异常 java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

原因:项目里有这两个jar包产生了冲突所致:antlr-2.7.6.jar和anltr-2.7.2.jar。

解决:将anltr-2.7.2.jar包删除即可。之所以在main方法里能够顺利执行是因为:antlr.jar包是Struts2所依赖的。不通过网页传参,就不需要它,所以能够顺利执行。

-----------------------------------------------------------------------------------------------------------------------

3、启动tomcat 报 严重:Null component Catalina:type=JspMonitor,name=jsp,WebModule=//.......

原因:JDK版本不匹配

解决:更换JDK版本

---------------------------------------------------------------------------------------------------------------------------\

4、query.List()的异常

原因:使用hql每次执行到query.List()方法时停下程序,使用Debug跟踪到List list = query.list(); //卡死.程序僵死!

解决:关闭session,在调用其它方法之后或是使用自身的方法都要关闭session.

session.close();

----------------------------------------------------------------------------------------------------------------------------

5、DWR异常 org.directwebremoting.dwrp.Batch异常

dwr遇到这种错误: 

org.directwebremoting.util.CommonsLoggingOutputerror

严重:ArequesthasbeendeniedasapotentialCSRFattack.

在参照dwr的官方网站时,如果在后台出现如下的提示信息:A request has been denied as a potential CSRF attack

则,需要在web.xml中的如下配置修改一下

<servlet>

        <servlet-name>dwr-invoker</servlet-name>

        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>true</param-value>

 </init-param>

 </servlet>

  <servlet-mapping>

        <servlet-name>dwr-invoker</servlet-name>

        <url-pattern>/dwr/*</url-pattern>

修改为

<servlet>

        <servlet-name>dwr-invoker</servlet-name>

        <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>

        <init-param>

            <param-name>debug</param-name>

            <param-value>true</param-value>

        </init-param>

        <init-param>  <!-- 添加 加入了跨域调用功能-->

        <param-name>crossDomainSessionSecurity</param-name>  

        <param-value>false</param-value> 

        </init-param>  

    </servlet>

  <servlet-mapping>

        <servlet-name>dwr-invoker</servlet-name>

        <url-pattern>/dwr/*</url-pattern>

    </servlet-mapping>

    </servlet-mapping>

即加入了跨域调用功能

此处servlet-class值为uk.ltd.getahead.dwr.DWRServlet (如果dwr版本是1.0版本的,则必须用这个class)

也可以是org.directwebremoting.servlet.DwrServlet

如果确定java类的方法被调用了,但是页面还是出现了如下的报错: 例外被抛出且未被接住

-------------------------------------------------------------------------------------------------------------------------------------