近來看看點OSGI在Web開發中的應用。看到這個方面的東西肯定會搜到EclipseZone上面的一篇文章,他叫《Developing Eclipse/OSGI Web Application》。說實話這個文章寫的真的沒說的,淺入淺出的同時還給你真正帶來不少好東西。他的所有的內容是圍繞著一個叫Rsp的例子進行的。這個例子在http://sourceforge.net/project/showfiles.php?group_id=122298 處可以下載到。

這里我下載了rspDemo-0.2.zip這個包。按照要求把包打開,并且運行。果然可以運行,并且能夠得到文中所說的結果。
下面我們就來看看解壓后的文件夾:這個里面不光包括了示例代碼還包含了一個tomcat-5.5.15生怕被人機器上沒有裝tomcat。好了,把我自己的eclipse的workspace設置成c:\rsp\workspace。這樣我就得到了一個如下圖的工作界面:

這個時候我不想使用rsp中自己帶的那個tomcat,我想自己已經有的tomcat。就在這個時候我遇到問題了。什么問題呢,我們來看看啟動時的log
嚴重: Servlet.service() for servlet jsp threw
exception
org.apache.jasper.JasperException: The absolute uri: http://java.sun.com/jsp/jstl/core
cannot be resolved in either web.xml or the jar files deployed with this
application
很明顯是沒有找到uri為http://java.sun.com/jsp/jstl/core
的tld文件。不對啊,這個應該都是在web應用程序里面的啊。但是他自己帶的tomcat就可以。肯定是他自己加了。我找了好大一會兒終于在C:\rsp\apache-tomcat-5.5.15\common\lib多出兩個包他們分別是jstl.jar和standard.jar。查看了一下standard.jar所有真相大白。他包含了一個c.tld的文件。其中有這么一段
<description>JSTL
1.1 core library</description>
<display-name>JSTL
core</display-name>
<tlib-version>1.1</tlib-version>
<short-name>c</short-name>
<uri>http://java.sun.com/jsp/jstl/core</uri>
好了,把這兩個包放入到我自己的tomcat中,所有問題都解決了。終于順暢的跑起來了。