在java web项目中慎用Executors以及非守护线程

2011/01/07 11:15:15 1 Comment

     最近研究embeded tomcat,特别是关于tomcat启动和关闭的模块。通过查看相应的源代码, 我们知道tomcat的关闭是通过往相应的关闭端口发送指定的关闭指令来达到关闭tomcat的目的。但是有的时候,通过shutdown.bat或shutdown.sh却不能有效地关闭tomcat,网上也有很多人提出这个问题。通过相关资料,最后问题出现线程上。

read more… »

使用embeded tomcat进行嵌入式javaee开发-启动tomcat

2010/12/30 09:57:49 No Comments

     昨天在网上研究了下关于将tomcat嵌入到主程序中进行运行,而不是像以前将一个web项目copy到tomcat中进行运行。之所以这样做的原因,即是因为项目部署到客户方,在进行更新的时候,需要手动地进行更新,再把相应代码copy到tomcat,然后再运行。运用embeded tomcat就可以将项目与tomcat分开,在进行更新时,先使用自定义的程序进行自动化更新,待更新完毕之后,再启动tomcat(或其它javaee容器)进行项目运行。

read more… »

使用jacob或com4j将Excel转换为html

2010/12/28 09:48:19 No Comments

     前段时间碰到一个新需求,客户系统中有一个用于管理Excel的模块,excel文档由下边的人上传至系统,由管理员负责进行查看和审查。现在客户提出,因为excel默认需要下载才能打开,又加上客户要查看很多excel,每次都要下载下来。Office的Excel又启动得很快,客户就提出,是否可以直接在网页中查看,而不是以Excel的形式打开。比如,点击一个文档时,直接弹出一个界面,这个界面就是显示的excel的内容,而并不是由excel进行打开了。这样,客户每次看了之后,就可以直接关闭,再看下一篇文档,以节约时间和提高速度。下来研究了一下,可以使用jacob和com4j来将excel在服务器端转化为一个html,再将这个html发送到客户端进行查看。

read more… »

spring和aspectj的结合inject原理(下篇)

2010/12/27 14:37:47 2 Comments

     上篇讲解了在spring中aspectj,对普通@Transactional的事务控制支持,这篇主要了解一下spring的@Configurable对新建对象的spring属性支持,并顺带发布一个简单的rich domain的例子:)
    上篇地址:http://www.iflym.com/index.php/code/the-theory-about-spring-and-aspectj-pre.html

read more… »

spring和aspectj的结合inject原理(上篇)

2010/12/26 21:35:00 No Comments

     最近研究下aspectj,特别是对里面的代码编织和上下文控制有兴趣。后面看了下spring对aspectj的支持,以及简单了解了一下spring与aspectj结合的产品spring roo。这里主要介绍一下由aspectj支持的@transactional注释和@configurable原理,具体它们之间的关系以及由此衍生的domain静态编织等。

read more… »

在Intellij idea下为tomcat7设置sessionCookieName

2010/12/26 11:16:23 No Comments

     由于现在的浏览器在对同一ip不同端口的cookie保存时,并没有区分不同端口的session信息。那么当我们时同开启两个tomcat进行开发时,由于用户验证信息是通过session进行保存的。那么就会出现,在同一个机器布置两个系统A和B,当用户A登陆A系统并成功之后,用户B登陆B系统之后,再回到A系统,当进行点击时,就会提示A用户已经不存在了,即相应的session信息已经不存在了。
    java的web系统,一般是通过jessionid来进行session标识的,即A系统和B系统均会与客户端进行jsessionid的信息交互。但由于这两个系统是在同一个ip上,所以客户端的浏览器并不能区分每一个jessionid与不同的系统之间的关系。相反,他会将后来的jessionid覆盖前一个cookie信息,即后面的登陆时,jessionid会将A系统的jsessionid信息覆盖掉,再请求A系统时,客户端就会发送系统B的jsessionid至A系统,这样A系统肯定会取不掉最开始的session信息,而被认为是新登陆了。
    解决的办法就是两个系统使用不同的session标识来保存信息,从tomcat7开始,为兼容j2ee规范,tomcat提供了一套标准的设置sessioncookiename的方法。即在整个tomcat下的conf目录下的context.xml中添加一个属性即可。

read more… »