OSGi中的ServletContext】的更多相关文章

在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 - ----------…
众所周知.对于高动态高可扩展的应用,OSGI是一个很好的平台.可是.也因此添加了复杂性.开发中对service的依赖变得复杂. 这也是service的关系管理成为OSGI中一个很重要的部分,我们来看看OSGI中service依赖关系管理的方式. 篇幅原因,仅仅关注发展历程,不具体介绍每一个方式的具体实现细节. 概括的说.眼下在OSGI中主要有下面几种service依赖关系管理的方法: 1. Service listener 2. Service binder 3. Dependency Mana…
在开发javaWeb定时任务的时候,有些处理要取得应用的相对路径,这就需要用到ServletContext取得到这个路径 解决思路是在web应用启动时,把ServletContext提前注入到Scheduler的Context中 注册一个应用启动的listener <listener> <listener-class>com.krm.slsint.common.web.listener.StartupListener</listener-class> </list…
http://blog.sina.com.cn/s/blog_3fe961ae0100wjnf.html 1.在javax.servlet.Filter中直接获取 ServletContext context = config.getServletContext(); 2.在HttpServlet中直接获取 this.getServletContext() 3.在其他方法中,通过HttpRequest获得 request.getSession().getServletContext(); 4.在…
起因是我想要获取一个相对路径,需要用到servletContext的getRealPath()方法,于是上网搜索,找到两种方法来获取ServletContext. 方法1:第一种方法是这样的: ServletActionContext.getServletContext(): 或者ServletContext servletContext= req.getServletContext();其中req是一个HttpServletRequest对象. 上述两种方法第一种局限于Struts中使用,且两…
ServletContext接口 public interface ServletContext (https://docs.oracle.com/javaee/7/api/javax/servlet/ServletContext.html) 一.介绍 定义了一组servlet用来与其servlet容器进行通信的方法,例如,获取文件的MIME类型,调度请求或写入日志文件. 在每个JVM中的每个Web Application中,只有一个ServletContext. 而一个“Web Applica…
ServletContext官方叫Servlet上下文.服务器会为每一个Web应用创建一个ServletContext对象.这个对象全局唯一,而且Web应用 中的所有Servlet都共享这个对象(在整个web应用中只有一个ServletContext对象).所以叫全局应用程序共享对象. ServletContext对象的作用 相对路径转绝对路径 相对路径的相对点是以web项目的根作为相对点 context.getRealPath("path") 将一个相对路径转换为绝对路径,在文件上传…
1.spring得到servletContext,这个和session没有什么关系,上下文可以说是一个session容器,一个上下文可以有多个会话session 在web.xml中有以下配置后.加入spring对上下文的监听, <listener>       <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>    </listener>…
Servlet: this.getServletContext() this.getServletConfig().getServletContext() request.getSession().getServletContext() JSP: request.getSession().getServletContext() Filter: config.getServletContext()…
笔者不知道该用哪个词来形容ValueStack.ActionContext等可以在Struts2中用来存放数据的类.这些类使用的范围不同,得到的方法也不同,下面就来一一介绍. 声明:本文参考Struts2版本为2.3.1.2,内容仅供参考,限于笔者水平有限,难免有所疏漏,望您能友善指出.本文发表于ITEYE,谢绝转载. 1. ValueStack ValueStack在中文版的<Struts2深入浅出>一书中译作“值栈”.其本身数据结构是一个栈,使用者可以把一些对象(又称作bean)存入值栈中…
原文地址:https://liugang594.iteye.com/blog/1328050 简单介绍一下如何在一个osgi的bundle中内嵌使用http服务 一.基础 首先看看在OSGI中怎么启动内嵌的jetty容器.看下图: 其实简单的只选中"org.eclipse.osgi"和"org.eclipse.equinox.http.jetty",然后点击"Add Required Bundles"即可. 默认的Jetty监听的端口为80,可又…
我们的日志虽然没有直接依赖logback,但遗憾的是也没有使用slf4j,而是使用了Apache Common-Logging slf4j 和 common-logging有什么区别呢 common-logging通过动态查找的机制,在程序运行时自动找出真正使用的日志库.由于它使用了ClassLoader寻找和载入底层的日志库, 导致了象OSGI这样的框架无法正常工作,因为OSGI的不同的插件使用自己的ClassLoader. OSGI的这种机制保证了插件互相独立,然而却使Apache Comm…
上篇文章介绍了如何在Eclipse中搭建Felix的运行环境,我们需要將Bundle发布到Felix框架的bundle目录下,Felix框架启动时才会自动加载这些Bundle,否则需要在Felix框架启动后手动安装Bundle,我们可以发现Bundle的管理非常麻烦,而且一旦Bundle启动报错,我们修改代码后,又需要重新发布Bundle进行调试,虽然我们可以使用自动化工具Ant或者Maven进行管理,但是一个项目中如果有几百个自定义的Bundle,这些Bundle管理起来就相当繁琐. 本文开始…
参看:http://www.cnblogs.com/isisbenben/p/5594323.html servletContext和ApplicationContext有什么区别 servletContext:是web容器的东西,一个webapp一个,比session作用范围要大,从中得到很多信息,比如:工程部署的路径目录. ApplicationContext:是Spring的东西,spring通过这个读取xml配置文件来new bean的(应用上下文) 作用:(1)读取bean配置文件,管…
假设想依据给定的文件名创建一个File实例,你可能会这么写: File file = new File(当前类.class.getResource("config").toURI()); 可是在osgi项目中.这样的写法会报异常.异常信息是URI scheme is not "file".原因是osgi中採用的是bundleresources协议的URL.得到的URI中包括了"bundleresource://165xxxxxxxx/"前缀,所以…
获取web的上下文路径 获取全局的参数 作为域对象使用 请求转发 读取web项目的资源文件 package day10.about_servletcontext.get_path; /** * 首先区别: * 一个网站只有一个ServletContext对象 * 而每一个Servlet都有一个ServletConfig对象 * * 但是我们拿Context对象的话,其实是通过Config对象去 * 拿的,因为每一个ServletConfig中都有一个ServletContext * 的成员变量:…
Bundle-Classpath可以实现内嵌jar. 一个Bundle的Activator不需要进行Export 一个Package中的类被两个ClassLoader加载,包中的Private class对于两个ClassLoader之间是相互不可见的. Manifest语法: name: value,我们称之为一个条目,Manifest文件有不受限制的条目个数,其中name是不区分大小写,可以包含字母数字,下划线,中划线,Value可以包含除子\r, \n之后的所有字符,name和value之…
定义 OSGi(Open Service Gateway Initiative)技术是面向Java的动态模型系统. 这个框架实现了一个优雅.完整和动态地组价模型.应用程序(称为bundle)无序重新引导可以被远程安装.启动.升级和卸载. OSGi服务平台提供在多种网络设备上无需重启的动态改变构造的功能. 为了最小化耦合度和促使这些耦合度可管理,OSGi技术提供一种面向服务的架构,它能使这些组件动态地发现对方. OSGi联盟已经开发了例如像HTTP服务器.配置.日志.安全.用户管理.XML等很多公…
在学习servletContext的时候,我们知道了可以在web.xml中通过<context-param>标签来定义全局的属性(所有servlet都能读取的信息),并在servlet中通过servletContext.getInitParameter("name")的方式读取,java5以后提供了新的方案叫做资源注入就是通过注解(Annotation)的方式.也就是说,不需要servlet主动读取数据,Tomcat在启动的时候会把web.xml里配置的信息主动"…
一个项目中只有一个ServletContext对象,我们可以在多个servlet中获取这个唯一的对象,使用它可以给多个servlet传递数据,我们通常成servletContext为上下文对象.这个对象在tomcat启动时就创建,在tomcat关闭时才被销毁.有时候我们也把这个对象叫做application. ServletContext对象的作用就是在整个web应用的动态资源之间共享数据,比如在AServlet中向ServletContext中保存一个数据,然后在Bservelt中获取这个数据…
OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文介绍模块层的一些基础知识,以及OSGi联盟在设计模块层时所做的一些考虑.OSGi标准走到今天,并不是凭空想出来的,它的产生恰恰是为了弥补之前一些技术的缺陷. 模块化其实就是计算机科学中常见的一个概念: “将一个大型系统分解为多个较小的互相协作的逻辑单元,通过强制设定模块之间的逻辑边界来改善系统的维护…
基础的API BundleActivator  BundleContext ServiceReference HelloServiceFactory ServiceTracker osgi 疑惑: Import-Package 最最基础的bundle中包含哪些 package? 很多, org.osgi.framework 是其中一个,  org.osgi.framework.BundleActivator 则是位于其下. 为什么只导入package ‘org.osgi.framework ’…
相同:其实servletContext和application 是一样的,就相当于一个类创建了两个不同名称的变量.在 servlet中ServletContext就是application对象.大家只要打开jsp编译过后生成的Servlet中的 _jspService()方法就可以看到如下的声明:            ServletContext application = null; application = pageContext.getServletContext(); 不同:两者的区…
1.一般工程中使用I/O类指定文件的绝对路径读取 FileInputStream fis = new FileInputStream("src/main/resources/zsm.properties"); ppt.load(fis); String memAddr1 = ppt.getProperty("memAddr1"); 2.Web工程中可以使用ServletContext或ClassLoader来读取 2.1.通过ServletContext来读取资源文…
OSGi——面向服务架构规范简述 去年我们组要开发一个新的产品,在讨论产品架构路线的时候,美国的架构师向大家征集了架构设计思想(我推荐了SCSF),有一位工程师向他推荐了OSGi.以前我还没有听过OSGi这玩意,虽然我参加工作后,现学了Java和Flex,但非常菜.在工作之前我用了4年的.NET.接触了OSGi后,发现它是一个面向Java的服务规范,还没有一个像样的面向.NET的框架(有个EgeyeAddIn,据说兼容OSGi,我看了源代码了,觉得它离OSGi较远http://www.codep…
Bundle可以被动态地安装.启动.停止和卸载.Bundle是服务(Service)和组件(Component)的载体.在OSGi中,每个Bundle都有自己独立于其他Bundle的ClassLoader,正因为这样,各个Bundle内部的类是隔离的 Bundle之间的交互方式:1.通过Package的Export(对外暴露自己的一个或多个package)和Import(导入别人的一个或多个package)来进行.2.通过Service的方式进行.一个Bundle作为Service提供方,对外提…
基本概念 Web容器在启动时,会为每个Web应用程序都创建一个对应的ServletContext对象,它代表当前Web应用. ServletContext(javax.servlet.http.ServletContext )存储了整个Web应用运行的上下文信息,即Web应用的全局信息,并且这些信息可以被不同的Servlet共享. ServletConfig对象中维护了对ServletContext对象的引用,Tomcat创建Servlet对象后,在init方法中将ServletContext通…
以下内容大多来自周志明的<深入理解Java虚拟机>. 类加载器是java的一项创新,也是java流行的重要原因之一,它最初是为了满足java applet的需求而开发出来. 什么是applet? 作为新手,都不知道applet是什么鬼,看看百度百科的解释,应该就明白了: JavaApplet就是用Java语言编写的小应用程序,可以直接嵌入到网页中,并能够产生特殊的效果. 所以Applet就目前来看 我们用不到了,但是类加载器却在类层次划分.OSGI.热部署.代码加密等领域大放异彩,成为了JAV…
今天我们学习的是ServletContext的应用. WEB容器在启动时,它会为每个WEB应用程序都创建一个对应的ServletContext对象,它代表当前web应用. ServletConfig对象中维护了ServletContext对象的引用,开发人员在编写servlet时,可以通过ServletConfig.getServletContext方法获得ServletContext对象. 由于一个WEB应用中的所有Servlet共享同一个ServletContext对象,因此Servlet对…
今天遇到了一个在servlet的service方法中获取ServletContext对象出现java.lang.NullPointerException(空指针)异常,代码如下: 1 //获取ServletContext对象 2 ServletContext servletContext = this.getServletContext(); 这个问题很奇怪,也是第一次遇到,因为以前在servlet的doGet/doPost方法中要获取ServletContext对象时都是这样写的,也没有出现过…