Sky's blog

我和我追逐的梦

常用链接

统计

其他链接

友情链接

最新评论

web

web开发中的心得
解决Jetty下EL版本冲突的问题
     摘要: 今天用jetty做嵌入式web container,来做web项目的integration test,结果发现出现在渲染使用EL表达式的jsp页面时出现异常:

javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;

检查了一下,发现javax.el.ExpressionFactory.newInstance()这个方法是EL2.2版本之后才有的方法,而在EL2.1之中是没有这个方法的,问题很明显:org.apache.jasper中试图调用2.2版本的EL,当时提供的EL的版本是2.1版本,所以解决的方式无非就是两个,要不降低org.apache.jasper的版本,要不提升el的版本。考虑到现在使用的jetty已经是最新的版本8.1.2.v20120308,因此提升EL的版本为2.2更为合适。  阅读全文

posted @ 2012-05-25 07:11 sky ao 阅读(11088) | 评论 (2)  编辑

在ubuntu9.10/sles11下安装resin并配置开机启动中遭遇的诸多问题
     摘要: 有两年多没有使用resin了,最近打算在机器上安装一个web container跑点java web app,同时也可能需要支持php,原本打算用apache + tomcat,apache可以加载php模块来提供php支持,tomcat作为java web container。但突然想到resin,似乎是可以直接支持php的,而且resin的速度也是稍微快于tomcat,于是跑到resin的官网看了一下,恩,新出了4.0版本(惭愧,两年前用的是3.0或者3.1)。

决定用resin试试,老朋友了。但是在安装过程中,发现了一系列问题,尤其是设置开机自动启动,记录下来提供大家参考。  阅读全文

posted @ 2010-04-04 10:31 sky ao 阅读(3663) | 评论 (1)  编辑

同一个账号启动两个resin而要求使用不同jdk的解决方法
     摘要: 修改两个resin的httpd.sh脚本,加入对JAVA_HOME的不同设置就可以了搞定这个问题,呵呵,最后的方法还是蛮简单的。  阅读全文

posted @ 2008-06-27 11:08 sky ao 阅读(1416) | 评论 (0)  编辑

resin的session id reuse特性(3)--总结
     摘要: 从对resin源码的追踪到resin配置文件中的设置,可以明确的看到,resin在设计上是提供了session id 的reuse功能,而且resin.conf默认就是打开reuse的。惭愧的是,我一直不知道......  阅读全文

posted @ 2007-12-28 16:28 sky ao 阅读(1747) | 评论 (4)  编辑

resin的session id reuse特性(2)--分析问题
     摘要: 上文中详细描述了问题的表现情况,由于这个特性严重影响到目前为公司设计的一套前台统一认证方案,因此不得不特别关注。好在resin的源代码是公开的,直接从resin的官网将resin的源代码拿下来,看resin到底是如何处理的。  阅读全文

posted @ 2007-12-28 12:01 sky ao 阅读(1687) | 评论 (0)  编辑

谁在创建session(4)-为什么要关注session的创建
     摘要: 看到有留言,对我如此“执着”的关注session创建很好奇,解释一下吧。

首先是关注性能,前面提到过session的使用是有代价的,需要在保存在服务器端内容中,每次request.getSeesion()方法获取 session时,实际是在服务器段的一个大的hasp结构中以当前的jsessionid为key,获取对应的value HttpSession对象,这个过程是需要消耗cpu的,当然目前hash算法比较好,这里消耗不那么明显。而一般的应用,消耗的cpu远比这个小开销大出2-3个数量级,因此通常情况不敏感。如果这个session是我们需要使用的,那么付出这些内存和cpu的代码是完全值得的。但是,如果产生大量的没有任何用处的"垃圾session",对大容量,大并发,需要长期稳定运行的系统会带来很无谓的负载。  阅读全文

posted @ 2007-12-20 11:06 sky ao 阅读(3874) | 评论 (9)  编辑

谁在创建session(3)-凑热闹的webwork标签
     摘要: 按照前面的方法,将jsp页面加入<%@ page session="false"%>之后,发现还是有新的session会意外的蹦出来。仔细检查action没有操作session,那这次是谁干的呢?将目光转回jsp文件,首先来次狠的,将这个jsp文件的内容删空为只有纯html内容。重新运行后发现不会自动生成session,ok,问题在jsp文件里面了。将原来的内容一点点的加回去,反复测试直到session自动创建的问题再次出现, 哈,发现问题出现在webwork的标签上。  阅读全文

posted @ 2007-12-19 17:25 sky ao 阅读(1676) | 评论 (1)  编辑

谁在创建session(2)-悄悄干活的jsp
     摘要: jsp文件是session创建的一个源头,这里指的不是在jsp文件中用代码或者标签来操作session,这些都是在控制中的。容易忽视或者说根本就不会意识到的(比如我,就是写jsp三年后才发现的)是,jsp有自动创建session的机制,在jsp页面中,如果没有明确的给出 <% @page session="false"%>,jsp页面会非常乖巧(如果刚好需要)或者说是偷偷摸摸(如果不需要)的自动在生成的java文件中增加一句: javax.servlet.http.HttpSession session = request.getSession(true)。  阅读全文

posted @ 2007-12-19 12:26 sky ao 阅读(3795) | 评论 (3)  编辑

谁在创建session(1)-不恰当的request.getSession()
     摘要: 在HttpServlet中,HttpSession对象通常在request.getSession(true)方法调用时才创建。 HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由我们的代码明确创建。但是最近在开发中发现,新的session对象经常在意料之外出现,究竟是谁在创建session呢?  阅读全文

posted @ 2007-12-19 11:41 sky ao 阅读(2954) | 评论 (1)  编辑

resin的session id reuse特性(1)--发现问题
     摘要: 近期因工作需求探索apache + resin的多机负载分布和多个webapp统一认证的实现方案, 期间设计多个webapp统一认证的实现方案时, 发现resin下通过cookie来传递jsessionid和通过url重写将jsessionid放url中传递, 会有细微的差异.

注:后来研究发现是resin提供的session id reuse特性,只是此文第一次发布时我还不知道有此特性,惭愧。  阅读全文

posted @ 2007-12-17 10:52 sky ao 阅读(3443) | 评论 (3)  编辑

namespace对axis解析xml请求的影响
     摘要: 发生在我身上的实际故事,最后发现和axis解析xml时的处理机制有关,namespace的有无会影响xml解析的方式,简单的说就是有namespace时按照元素名解析,没有namespace则按照index下标的顺序来解析。  阅读全文

posted @ 2007-12-05 16:49 sky ao 阅读(4723) | 评论 (8)  编辑

apache下安装mod_rewrite模块
     摘要: 在网上找了一些apache下安装mod_rewrite模块的文章,说得都很轻巧,但是俺一路碰壁,怎么都出不来。整理了一下,以后再来研究。  阅读全文

posted @ 2007-12-05 15:50 sky ao 阅读(2855) | 评论 (0)  编辑

resin采用url rewrite来传递jsessionid
     摘要: 前段时间做公司前台方案的技术探索时,涉及到jsseionid的传递,期间尝试使用resin自己的url rewrite功能来传递jsessionid参数,总结如下  阅读全文

posted @ 2007-12-05 15:49 sky ao 阅读(2761) | 评论 (0)  编辑

apache + resin的多机部署方案实现方法
     摘要: 前段时间,对公司前台多机分布方案的做了一些探索,总结了一些东西,贴出来分享。apache + resin的多机部署,类似内容网上比较多,但是都不够详细,我第一次弄时费力不少,希望后来人可以更方便一些。  阅读全文

posted @ 2007-12-05 15:47 sky ao 阅读(1351) | 评论 (0)  编辑

linux/unix + RESIN 验证码无法显示的问题
     摘要: RESIN下验证码无法显示的问题,验证码的代码就是google上查找到的最常见的代码,服务器采用resin部署于linux或unix。不是常见的out.clear()问题,这次的问题发现在一个我压根就没有想到的地方,profile DISPLAY 环境变量。  阅读全文

posted @ 2007-12-05 15:33 sky ao 阅读(2135) | 评论 (2)  编辑

WebWork中格式化输出数字和日期的方法
     摘要: 大概在05年6月的时候,我们团队开始使用webwork来替代struts,刚开始大家都没有经验,为了格式化输出时间和数字,想出了很多现在看来笨笨的傻傻的方法。后来俺找到了这个方法...  阅读全文

posted @ 2006-08-14 13:41 sky ao 阅读(4688) | 评论 (4)  编辑