解惑

解己之惑,解人之惑

日:2007年7月12日

文件删除不成功

Java的功能在某些地方确实很有缺陷,File的delete方法就是一个很大的问题,如果文件被使用而不能删除,那么这个方法调用是不会抛出异常的,也不会返回任何信息,就像方法调用根本没有发生一样。由于是临时产生的文件,如果不能删除,那么文件越来越多就可能撑爆硬盘。
方法当然可以有一些,例如可以加一个线程不停的试,,删除不成功就等待一段时间,直到删除成功,这个方法应该是比较有效的,因为大部分情况下,文件只是临时被占用,可能前后就差那么几百毫秒,当然,这个方法不完美,还是可能有漏网之鱼,明天再好好想想方法了。

Hot Deploy成功

前几天曾经抱怨新公司的开发环境太复杂,不能Hot Deploy,极其影响开发的效率,今天成功的在Eclipse(实际上是MyEclipse)中配置好了可以Hot Deploy的环境,其实也很简单,我们的工程发布非常的复杂,sar, ear, har, jar, war一个套一个,要想严格的按照那个目录结果配置工程几乎不可能,但是要想Hot Deploy很简单,配置一个Web工程,引入全部的工程需要的类,把Jar包修改为手工发布,然后使用MyEclipse的Manage Deployment发布,只要你的这个web工程先于原来的工程发布就行了,对于同名的类,由于新的工程先加载,所以也就可以达到Hot Deploy的目的了,现在修改了源代码,保存一下就可以生效了,爽啊

更新:
关于类加载,找到理论依据:
Packaging J2EE applications for JBOSS 3.2.1

By default, all the EARs in a jboss instance, under, JBOSS_HOME/server/jboss-instance-name/deploy/ use the same loader repository and hence, a class found in one can be used by the other. But we don’t like calling this bug a feature as it goes against the idea of scoping by EAR. Fortunately, JBoss provides a way to supress this behaviour through what they call as deployment based scoping.

JSP的一个小误区

相信很多人在面试的时候都会被问到JSP和Servlet的区别,我认为JSP就是功能受限的Servlet,因为JSP不能作为后台的控制Servlet用,但是实际上我的这个想法是错误的,JSP是可以像普通的Serlvet那样作为控制用的Servlet用的,在web.xml里面定义一下就行了:
    <servlet>
        <servlet-name>control</servlet-name>
        <jsp-file>/jsp/control.jsp</jsp-file>
    </servlet>

© 2025 解惑

本主题由Anders Noren提供向上 ↑