posts - 4, comments - 0, trackbacks - 0, articles - 0

2010年3月20日

今天使用Struts2的时候遇到一个怪异的问题,首先在struts.xml中配置的action是没有问题的,Java类也写好了。但是运行的时候报 告如下错误:

    javax.servlet.ServletException: Unable to instantiate Action, cn.edu.cup.actions.JobManager,  defined for 'jobList' in namespace '/'null - action - file:/K:/Softwares/%E6%95%99%E5%AD%A6%E7%9B%B8%E5%85%B3

    经过网上仔细搜索发现,根本原因在于我在方法中使用了 Student s = (Student) session.getAttribute("user"); 其中session是在构造函数中获取的。但是,通过分析Struts的原理(参见http://t8500071.javaeye.com/blog /348057),由于Action先于ActionContext对象实例之前创建,所以session对象是null,因此,会报告空指针错误!

    明白了上述原理后,将获取session的语句从构造函数中删除,放到方法中,程序终于正常了!

posted @ 2010-10-16 11:19 希望的石头 阅读(3569) | 评论 (0)编辑 收藏

   从初步观察的结果来看,Netbeans是绿色软件,即不需要安装的软件。
   前天,系统重装后,直接启动NetBeans(上次安装遗留的),正常,创建项目正常。只有JavaFx有些异常——不能正常执行。后来,增设了几个环境 变量就好了。
  增设的环境变量有:
set JAVA_HOME=D:\Java\jdk1.6.0_18
set JRE=d:\java\jre6
set JAVAFX=E:\NetBeans 6.8\javafx2\javafx-sdk
set classpath=.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
set path=%JAVA_HOME%\bin;%PATH%;%JRE%\bin;%JAVAFX%\bin;

posted @ 2010-04-01 08:30 希望的石头 阅读(396) | 评论 (0)编辑 收藏

用JSP开发的网站,一般超过一天不访问的话,数据库连接就会断开。从网上查找的解决办法如下: WNn?l{k  
rtS]p %YT  
如 果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat. <_ 2cV  
    不用hibernate 的话, connection url加参数: autoReconnect=true S?ByJ$  
    用hibernate的话, 加如下属性: .hcs)z  
        <property name="connection.autoReconnect">true</property> >%J q]8  
        <property name="connection.autoReconnectForPools">true</property> r 0; x  
        <property name="connection.is-connection-validation-required">true</property>
R2lq<1|!  
    要是还用c3p0连接池: }~QD|3vh  
        <property name="hibernate.c3p0.acquire_increment">1</property> EV|1P/h  
        <property name="hibernate.c3p0.idle_test_period">0</property> Lp#%~PGr~  
        <property name="hibernate.c3p0.timeout">0</property> 88O +w  
        <property name="hibernate.c3p0.validate">true</property>

不过,经过测试,没有效果。正在努力思考中...
经过测试,增加 autoReconnect不管用,url中不认识该关键字。有网上评论说对mySQL5.0以上该参数不灵。
第二种:Hibernate的配置 也不好用。
经测试,第三种方式是可行的。不过,参数配置不同。具体配置如下:
    <property name="hibernate.c3p0.max_size">10</property>
    <property name="hibernate.c3p0.min_size">5</property>
    <property name="hibernate.c3p0.timeout">5</property>
    <property name="hibernate.c3p0.idle_test_period">5</property>
    <property name="hibernate.c3p0.max_statements">100</property>
    <property name="hibernate.c3p0.acquire_increment">1</property>

为了具 体测试出效果,我将mySQL数据库的wait-timeout设置为10.也就是说,只要10秒钟不操作,数据连接就自动断开。
测试结果,网页 在等待若干分钟后,也能正常操作。

posted @ 2010-03-20 15:50 希望的石头 阅读(1563) | 评论 (0)编辑 收藏