OSGi中的ServletContext

在OSGi中,不能的bundle分属不同的装载器(Class Loader), 在J2EE 应用中,不同BUNDLE 中的JSP 所对应的ServletContext对象不同,这与通常情况下的应用是不一样的。

一个例子如下:

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:\NR\workpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\mx_test\proxytemp\hc_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:\NR\workpace\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\mx_test\proxytemp\hc_6240380

[2014-07-22 11:09:27,682] SG-UAP : INFO Config:147 - org.apache.jasper.runtime.JspApplication[email protected]5e8368

[2014-07-22 11:09:27,683] SG-UAP : INFO Config:149 - ---------------------------------------------------------

可以看到,两个bundle中的ServletContext内容不一样,servlet context临时目录也不一样。

时间: 2024-12-29 10:11:03

OSGi中的ServletContext的相关文章

OSGI中的service依赖关系管理

众所周知,对于高动态高可扩展的应用,OSGI是一个非常好的平台.但是,也因此增加了复杂性,开发中对service的依赖变得复杂.这也是service的关系管理成为OSGI中一个非常重要的部分,我们来看看OSGI中service依赖关系管理的方式.篇幅原因,只关注发展历程,不具体介绍每个方式的详细实现细节. 概括的说,目前在OSGI中主要有以下几种service依赖关系管理的方法: 1. Service listener 2. Service binder 3. Dependency Manage

OSGI中自定义command(2)

OSGI中自定义command(2) 前文 在上一篇博文中,我们讲述了什么是OSGI中的command,同时写了一个简单的command,这个command实现了org.apache.felix.gogo.commands.Action这个接口,同样可以实现相同功能的还有 org.apache.karaf.shell.console.OsgiCommandSupport这一个抽象类,但是在本程序中,这两个接口或者抽象类上都标注了@Deprecated,因此已经不推荐使用了,而当前推荐使用的则是k

# OSGI中使用自定义的command

OSGI中command的应用 前文 在上一篇博文中,我们讲解了osgi中的blueprint,但并没有对此作出具体的运用,在本文及以后将会在讲osgi中其他应用的时候将blueprint串进来讲解,本文将要讲讲解的是osgi中的command,在编写的应用中,可能涉及到数据迁移或者其他一些操作,如果这个通过调用接口来进行操作的话,如果非相关人员获取到相关接口调用方式,可能会带来一些危害,所以在不得已的情况下不会使用接口的方式,这个时候command的作用就体现出来了,如果自己编写数个命令,然后

OSGI中blueprint简介

OSGI中blueprint简介 上篇博文我们开始了felix中的一个example编写,原本计划是讲felix中的几个example全部编写一遍,但是随后发现felix的这几个example都差不多,只是略微有些区别,编写来编写去始终都是这几行代码,讲起来也没什么意思,想着还是开始osgi中新的东西的讲解,思考来去,还是从blueprint开始. blueprint简介 在osgi中服务的使用有多种方式,如使用传统的注册式服务,就是我们之前中example不断使用的使用方式,还是osgi中的声

OSGI中Declarative Services的运用

OSGI中Declarative Services的运用 前言 Declarative Services,即所谓的声明式服务,我在前文中曾经提及到注册式服务与声明式服务,但是在前文中并没有提及怎么使用声明式服务,只是简单的说了下概念和相对于blueprint来说有哪些优缺点,总而言之,可谓是一笔带过,这几日想起这个,还是决定需要仔细的讲一下声明式服务. 简介 Declarative Services,这是在OSGi 4以后的规范中出现的,在这里引用一段其他人说的话,Declarative Ser

ofbiz,普通java程序,osgi中类加载

OSGI中类加载 在osgi中,存在多个类加载器,每一个类加载器加载一个独立的模块,当其他模块需要寻找这个类时,通过osgi框架依赖关系表去查找这个类所在的加载器,委托这个加载器去运行 ofbiz中类加载 ofbiz中集成了许多应用程序,像订单,安全,登陆,网店等,还有tomcat也被集成到ofbiz中,在ofbiz中是通过将这些应用程序的jar包和资源文件加载到同一个类加载器中(包括tomcat) 普通java程序 和ofbiz中类加载器一致

OSGI中ServiceTracker的应用

OSGI中ServiceTracker的应用 前文讲了ServiceListener,ServiceListener用于监听各种服务,但是如果要监听某一种服务的话,可能要花费一番功夫才能完成,但是我们可以使用osgi中另外一个监听服务的方式,就是ServiceTracker,这个在本质上是对ServiceListener的一种封装,对service的获取比ServiceListener比起来又简单许多,并且可以解决不能监听到已经存在的service的问题,先简单的看一下ServiceTracke

java类中获取ServletContext的方法

起因是我想要获取一个相对路径,需要用到servletContext的getRealPath()方法,于是上网搜索,找到两种方法来获取ServletContext. 第一种方法是这样的: ServletActionContext.getServletContext(): 后来发现这种方法只有在从浏览器打开的时候才能获取到ServletContext,否则在普通的java类中会报空指针错误(找不到ServletContext),猜测可能是因为ServletActionContext是struts2封

osgi中第三方bundle的问题

2015年1月20日写到: OSGi常见问题总结 :http://blog.csdn.net/ostrichmyself/article/details/7515653IBM的另一个场景:http://www-01.ibm.com/support/docview.wss?uid=swg21568564一个很多的文档:http://www.bouncycastle.org/specifications.html 头疼的问题:银联给了个jar包,upacp_sdk-1.0.0.jar 此包用于签名,