在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… »

在Fedora14上(或CentOS 5.5上)安装oracle 10g

2010/12/26 11:09:49 No Comments

     新安装了一个fedora14,所以想把oracle给装上去,网上看了很多例子,再结合自己安装的实际操作,将整个过程记录下来,给其它想安装的人一个详细的过程。本安装过程以fedora14,oracle10g为准。所以,如果不是这个版本的话有些地方可能有差异。

read more… »

使用JOTM进行Tomcat的JTA调用

2010/12/26 10:53:13 No Comments

     前段时间碰到一个需要访问多个数据库的例子,由于项目上是采用tomcat作为项目开发和布署,所以就没有考虑采用特定厂商的JTA实现,而是通过一个开源的JTA实现来完成tomcat和多个数据库之间的直接交互。
    多数据库访问最直接的问题就是在一个service中,存在着多个数据库dao对象,当前面的dao对象操作完成之后,如果后面的某一个dao访问出错,那么这个service应该如何进行回滚呢。一般来说,回滚应该是整个service一起回滚,所以就需要对这个service中的所有dao所涉及的sessionFactory进行处理。而对于hibernate+spring来说,spring是使用hibernate的sessionFactory来进行事务的控制和回滚的,而hibernate又是将由自己的一个transactionFactory引用相关的transaction来进行事务的提交和回滚。所以,如果要用到多个数据库,就需要一个支持多个数据库的transaction。JOTM就提供了一个开源的多数据库Transaction应用,它采用了支持XADatasource的Xpool来进行数据源管理。

read more… »

运用struts2和ajax进行动态对象数据的加载

2010/12/26 10:06:02 No Comments

    现在的项目中,存在着许多的列表选择数据,比如在一个界面中有许多的选择项。通过这些选择项是由一个select下拉列表来进行选择的,而加载这些下拉列表,除普通的在action中主动获取之外,另外一种方式进行ajax方式在界面加载时加载。
    在我们的项目中,现在运用的即是在界面加载时,通过ajax方式来加载相应的列表数据,这样的好处即是不需要在表单加载时,由处理表单的action来生成相应的列表数据,而是交给产生这个列表数据的action来加载数据。现在存在的主要问题就是,每个列表的数据来源不一样,这就导致了需要写不同的加载代码来加载这些数据,而每个加载数据的action代码分布在不同的处理action中(比如用户数据由UserAction处理,字典数据由DictionaryAction处理),而每个加载逻辑还需要根据不同的参数进行不同的service转发,而经以dao来获取数据。在界面上,相应的js加载代码也不尽相同,但大体逻辑均是相同(即获取数据,填充列表)。

read more… »

Hibernate关联中对于mappedby 继承属性的描述和解决方法

2010/12/25 19:53:15 No Comments

    近期使用Hibernate进行开发,在开发的过程中碰到了几个问题,其中一些是由于不了解Hibernate,另外一些则属于设计或者Hibernate自身不支持一些操作。主要还是对Hibernate自身的一些东西都没有很好地了解,导致出了问题都往google上找,也不太知道其中的道理。现在把这些问题都列下来,以便以后容易查找。

read more… »

Log4j启动过程

2010/12/25 17:21:17 No Comments

    用了好久的log4j,但还是不知道Log4j究竟是基于怎样的原理来进行工作,以及为何在项目中除了Log4j之外,还需要一个common-logging来协同进行日志记录。在网上看了下相应介绍,都说common-logging是一个日志的管理框架,具体的事情还是交由log4j来进行记录。决定从源码出发,看看Log4j如何加载配置文件,并进行日志记录。

read more… »