Servlet过滤器和OSGi HttpService

时间:2009-05-21 02:44:45

标签: java http-headers osgi servlet-filters

我正在开发一个使用org.osgi.service.http.HttpService的基于OSGi的应用程序,它不支持使用Servlet过滤器。

在我意识到我无法使用Servlet过滤器之前,我计划应用几个现有的过滤器。这些过滤器将相应的HTTP标头设置为:

  • 阻止缓存回复
  • 使用X-UA-Compatible标题
  • 控制IE8中的呈现

我有什么选择?自that technique is unreliable以来,我不想使用meta元素来控制缓存。使用meta元素设置X-UA-Compatible标题可能是可以接受的,但我仍然对其他方法感兴趣。

5 个答案:

答案 0 :(得分:2)

您可以使用dm Server将WAR文件直接部署到OSGi环境中。在dm Server中运行的WAR是完全WAR和完全捆绑。

正在进行的工作是标准化OSGi上的WAR意味着什么。此规范称为OSGi Web容器。工作进展非常顺利,我是一个很好的方法,以及它的参考实现。我将在4-5天内提供RI的alpha代码以及详细说明用法的博客文章。请关注blog.springsource.com上的SpringSource博客。

我很遗憾无法链接到dm Server,因为我是新用户:(

答案 1 :(得分:1)

issue for adding servlet filter support提供了一些潜在的解决方法。

此外:

  

Pax Web [extends] OSGi Http Service   更好的servlet支持,过滤器,   侦听器,错误页面和JSP   其他一些人为了满足   最新版本的Servlet规范。

答案 2 :(得分:1)

从Eclipse 3.5开始,您可以使用org.eclipse.equinox.http.registry.filters扩展点定义过滤器。

答案 3 :(得分:0)

Pax web尚未在非OSGI servlet引擎(桥接模式)内工作。 Apache Felix在http://felix.apache.org处有一个很好的解决方案。

答案 4 :(得分:0)

关于Pax Web:

paxweb / Examples页面上的示例不起作用。

例如,我输入以下命令:

pax-run scan-file:jar:mvn:org.ops4j.pax.web.samples / provision!/sample-helloworld-wc.bundles

指向我的浏览器:

http://localhost:8080/helloworld/wc

结果:

错误404 NOT_FOUND

另外,从文档中我不清楚,如果Pax Web可以在非OSGI servlet引擎内部工作,例如WebLogic,WebSphere。