`
文章列表
    从对resin源码的追踪到resin配置文件中的设置,可以明确的看到,resin在设计上是提供了session id 的reuse功能,而且resin.conf默认就是打开reuse的。惭愧的是,我一直不知道......     事情要从前段时间的工作谈起,我被要求设计出一套合适的方案来解决目前公司现有的几个前台模块各自为政的问题。其中最核心的两个就是多机负载分担和统一认证功能。目前公司产品中多机负载有两种方式: 1. 纯resin,放弃了对HttpSession和本地资源的使用 2. apache + resin,需要传递所有需要用到的参数,因为麻烦所有干脆只有一个单一入口,因为使用 ...
    上文中详细描述了问题的表现情况,由于这个特性严重影响到目前为公司设计的一套前台统一认证方案,因此不得不特别关注。好在resin的源代码是公开的,直接从resin的官网将resin的源代码拿下来,看resin到底是如何处理的。 首先找到com.caucho.server.http.HttpRequest,发现是extends AbstractHttpRequest 在AbstractHttpRequest中找到方法   public HttpSession getSession(boolean create)         发现调用 _session = createSession ...
    近期因工作需求探索apache + resin的多机负载分布和多个webapp统一认证的实现方案, 期间设计多个webapp统一认证的实现方案时, 发现resin下通过cookie来传递jsessionid和通过url重写将jsessionid放url中传递, 会有细微的差异.     注:后来研究发现是resin提供的session id reuse特性,只是此文第一次发布时我还不知道有此特性,惭愧。 在servlet规范中,HttpServletSession的获取时通过调用request.getSession(boolean createnew)方法来实现,其实现机制可以简单的 ...
    看到有留言,对我如此“执着”的关注session创建很好奇,解释一下吧。     首先是关注性能,前面提到过session的使用是有代价的,需要在保存在服务器端内容中,每次request.getSeesion()方法获取 session时,实际是在服务器段 ...
    按照前面的方法,将jsp页面加入<%@ page session="false"%>之后,发现还是有新的session会意外的蹦出来。仔细检查action没有操作session,那这次是谁干的呢?将目光转回jsp文件,首先来次狠的,将这个jsp文件的内容删空为只有纯html内容。重新运行后发现不会自动生成session,ok,问题在jsp文件里面了。将原来的内容一点点的加回去,反复测试直到session自动创建的问题再次出现, 哈,发现问题出现在webwork的标签上。 这次出问题的a.jsp代码内容为: <%@ page contentTyp ...
jsp文件是session创建的一个源头,这里指的不是在jsp文件中用代码或者标签来操作session,这些都是在控制中的。容易忽视或者说根本就不会意识到的(比如我,就是写jsp三年后才发现的)是,jsp有自动创建session的机制,在jsp页面中 ...
在HttpServlet中,HttpSession对象通常在request.getSession(true)方法调用时才创建。 HttpSession的使用是有代价的,需要占用服务器资源,本着能不浪费就不浪费的原则,我希望系统中的session都在掌握之中,在需要创建时由我们的代码明确创建。但是最近在开发中发现,新的session对象经常在意料之外出现,究竟是谁在创建session呢?     最常见的地方是错误的使用request.getSession()函数,通常在action中检查是否有某个变量/标记存放在session中。这个场景中可能出现没有session存在的情况,正常的判断应该是 ...
jps(Java Virtual Machine Process Status Tool)是JDK 1.5提供的一个显示当前所有java进程pid的命令,简单实用,非常适合在linux/unix平台上简单察看当前java进程的一些简单情况。 jps存放在JAVA_HOME/bin/jps,使用时为了方便请将JAVA_HOME/bin/加入到Path. <!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://ww ...
    发生在我身上的实际故事,最后发现和axis解析xml时的处理机制有关,namespace的有无会影响xml解析的方式,简单的说就是有namespace按照元素名解析,没有namespace则按照index下标的顺序来解析。 中间惊险,一一道来,做技术的不容易啊。 这个市公司的一个大项目,使用web service,我负责服务器端的开发,其他厂商开发客户端。好说,axis上,几个月下来,设计/开发/测试一路ok,就进移动研究院准备最后的入网测试了。     和我们一起联合测试的cx公司,报告说发现错误,经查找是服务器端解析他们发过来的请求失败,出现异常 java.lang.Number ...
apache下安装mod_rewrite模块 在网上找了一些apache下安装mod_rewrite模块的文章,说得都很轻巧,但是俺一路碰壁,怎么都出不来。整理了一下,以后再来研究。 一. 编译rewrite模块 在apache 2.0.61下按照rewrite模块失败,目前还没有找到原因。 使用apache 2.2.6按照rewrite模块,采用的方式是在编译apache前,configure增加参数 ./configure --prefix=/data/aoxj/artest/apache --enable-so  --enable-rewrite=shared 然后再执行make; ...
前段时间做公司前台方案的技术探索时,涉及到jsseionid的传递,期间尝试使用resin自己的url rewrite功能来传递jsessionid参数,总结如下: 一) 默认的jsessionid 默认配置中,jsessionid以cookie的方式在页面传递,即在http请求的header中有 ...
    前言:前段时间,对公司前台多机分布方案的做了一些探索,总结了一些东西,贴出来分享。类似内容网上比较多,但是都不够详细,我第一次弄时费力不少,希望后来人可以更方便一些。 一. 编译安装apache 1) 从apache官网上下载apache最新的 release版本2.2.6 unix版本取httpd-2.2.6.tar.gz 2) 解开包 gunzip httpd-2.2.6.tar.gz tar xvf httpd-2.2.6.tar 3) 编译安装 进入解压后的目录httpd-2.2.6,依次执行 ./configure --prefix=/*要安装apache的目录*/ ...
    最近公司项目开发中遇到的一个问题,整理一下,和大家分享。     验证码无法显示的问题,验证码的代码就是google上查找到的最常见的代码,服务器采用resin部署于linux或unix。不是常见的out.clear()问题,这次的问题发现在一个我压根就没有想到的地方,profile DISPLAY 环境变量。     1) 问题描述:     登录页面等有验证玛显示的页面,通常可以正确显示验证码图片,但是在某些情况下发现验证码图片无法显示,并且目前只发生在linux/unix平台,windows下正常.而且和resin/jdk版本无关.     bug的直接表现是表现为ie下是红 ...
首先把问题摆出来,先看这个代码 String a = "ab"; String b = "a" + "b"; System.out.println((a == b)); 打印结果会是什么?类似这样的问题,有人考过我,我也拿来考过别人(蛮好玩的,大家也可以拿来问人玩),一般答 ...
一.checkout 签出     cvs checkout [-ANPRcflnps] [-r rev| -D date] [-d dir] [-j rev1] [-j rev2] [-k kopt] modules...          -A    重置所有粘性标记/日期/kopts     -N    如果指定了-d选项,不要使用短模块路径     -P    删除空目录     -R    操作应用于子目录     -c    显示模块数据库的内容     -f    如果没有发现标记/日期,强制与一个head版本号匹配     -l    只有本目录,不包括子目 ...
Global site tag (gtag.js) - Google Analytics