2009-05-21 137 views
1

我正在使用基於OSGi的應用程序,該應用程序使用org.osgi.service.http.HttpService,它不支持使用Servlet過濾器。Servlet過濾器和OSGi HttpService

在我意識到我無法使用Servlet過濾器之前,我打算應用一對現有的過濾器。這些過濾器設置相應的HTTP標頭:

  • 防止響應緩存
  • 控制在IE8渲染與X-UA-Compatible

什麼是我選擇這裏?我不想使用meta元素來控制自that technique is unreliable以來的緩存。使用meta元素來設置X-UA-Compatible標頭可能是可以接受的,但我仍然對其他方法感興趣。

回答

1

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

另外:

Pax Web [延伸] OSGi的HTTP服務 提供更好的支持servlet,過濾器, 聽衆,錯誤頁面和JSP和 一些人爲了迎合的Servlet規範的 最新版本。

2

您可以使用dm服務器將WAR文件直接部署到OSGi環境中。在dm Server中運行的WAR完全是WAR並且是完全捆綁的。

目前正在開展工作來標準化OSGi上的WAR。這個規範被稱爲OSGi Web容器。工作進展非常好,而且我是參考實現的好方法。我將在4-5天內提供RI的Alpha代碼以及詳細介紹使用情況的博客條目。請留意blog.springsource.com上的SpringSource博客。

我很遺憾不能鏈接到DM服務器,因爲我是一個新用戶:(

+0

[SpringSource.org dmServer site](http://www.springsource.org/dmserver)是Rob的意思。 – 2009-05-23 21:27:56

+0

奇怪 - 評論中的標記不同。 – 2009-05-23 21:28:57

0

關於大同網:在paxweb /例子頁面上

例子不工作

例如,我輸入以下命令:

PAX-運行掃描的文件中:jar:MVN:org.ops4j.pax.web.samples /提供/sample-helloworld-wc.bundles

比點m Ÿ瀏覽器:

http://localhost:8080/helloworld/wc

結果:

錯誤404 NOT_FOUND

而且,目前尚不清楚,我從文檔,如果大同網絡將非OSGI的servlet引擎的內部工作,例如WebLogic,WebSphere。

0

Pax web在非OSGI servlet引擎(橋接模式)內還不能工作。Apache Felix在http://felix.apache.org有一個很好的解決方案。

1

自Eclipse 3.5以來,您可以使用org.eclipse.equinox.http.registry.filters擴展點來定義過濾器。