在OSGi中,不能的bundle分属不同的装载器(Class Loader), 在J2EE 应用中,不同BUNDLE 中的JSP 所相应的ServletContext对象不同,这与通常情况下的应用是不一样的。
一个样例例如以下,分别訪问bundle a和bundle b, 打印出訪问时的ServletContext 属性參数(attributes):
Bundle a:
[2014-07-22 11:08:21,335] SG-UAP : INFO Config:331 - ---------------------------------------------------------
[2014-07-22 11:08:21,336] SG-UAP : INFO Config:336 - javax.servlet.context.tempdir=D:NRworkpace.metadata.pluginsorg.eclipse.wst.server.core mp0workCatalinalocalhostmx_testproxytemphc_20238918
[2014-07-22 11:08:21,336] SG-UAP : INFO Config:336 - __CONFIG_GLOBAL_CONFIG__={UPLOADMODE=file, THEMEPATH=~/mx/resources/themes, DEBUGMODE=true, COMPRESSMODE=false, THEME=aero,ERRORTYPE=friendly, actionScope=GLOBAL, ENABLE_WEBLET_I18N=true, UPLOAD_LIMIT_TYPES=exe,bat}
[2014-07-22 11:08:21,343] SG-UAP : INFO Config:338 - ---------------------------------------------------------
Bundle b:
[2014-07-22 11:09:27,681] SG-UAP : INFO Config:142 - ---------------------------------------------------------
[2014-07-22 11:09:27,682] SG-UAP : INFO Config:147 - javax.servlet.context.tempdir=D:NRworkpace.metadata.pluginsorg.eclipse.wst.server.core mp0workCatalinalocalhostmx_testproxytemphc_6240380
[2014-07-22 11:09:27,682] SG-UAP : INFO Config:147 - org.apache.jasper.runtime.JspApplicationContextImpl=org.apache.jasper.runtime.JspApplicationContextImpl@5e8368
[2014-07-22 11:09:27,683] SG-UAP : INFO Config:149 - ---------------------------------------------------------
能够看到,两个bundle中的ServletContext内容不一样,servlet context暂时文件夹也不一样。
原Application级的变量读、存储可使用静态类实现。