<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>Extreme Pattern: hello osgi jsp example</title>
    <link>http://blog.extremepattern.com/articles/2006/10/25/hello-osgi-jsp-example</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>enjoy</description>
    <item>
      <title>hello osgi jsp example</title>
      <description>&lt;h3&gt;源起&lt;/h3&gt;


	&lt;p&gt;OSGi 的 HttpService 只提供 servlet 與靜態 resource 註冊，並不提供 &lt;span class="caps"&gt;JSP&lt;/span&gt;，同時
OSGi 定義只到 Servlet &lt;span class="caps"&gt;API 2&lt;/span&gt;.1 版本，如果需要支援 &lt;span class="caps"&gt;JSP&lt;/span&gt; 等標準，就必須另外掛一些 bundle 上去。&lt;/p&gt;


	&lt;p&gt;一開始需要下載 OSGi 的環境來用。&lt;/p&gt;


	&lt;p&gt;http://www.eclipse.org/equinox/&lt;/p&gt;


	&lt;h3&gt;&lt;span class="caps"&gt;HTTP&lt;/span&gt; Service (Servlet 2.4 &lt;span class="caps"&gt;API&lt;/span&gt;)&lt;/h3&gt;


	&lt;p&gt;目前還未正式釋出，可以用 eclipse 3.2  team project 匯入來使用，真正要用時再直接匯出成 jar 即可。根據 maillist 的說法，可能會在 3.3M3 釋出，到時就可以直接拿來用。&lt;/p&gt;


	&lt;p&gt;Embedding an &lt;span class="caps"&gt;HTTP&lt;/span&gt; server in Equinox&lt;/p&gt;


	&lt;p&gt;http://www.eclipse.org/equinox/server/http_in_equinox.php&lt;/p&gt;


	&lt;p&gt;http://www.eclipse.org/equinox/server/downloads/jettyhttp-anon.psf&lt;/p&gt;


	&lt;p&gt;&lt;span class="caps"&gt;HTTP&lt;/span&gt; Service 的實做變成 org.eclipse.equinox.http.jetty，設計方式為轉接 &lt;span class="caps"&gt;HTTP&lt;/span&gt; Service 介面到 jetty 的介面，就可以讓 OSGi 環境使用。&lt;/p&gt;


	&lt;p&gt;因為 jetty 緣故，所以可以提供 Servlet 2.4 支援，不過需要支援的相依 jar 會比較多。&lt;/p&gt;


&lt;pre&gt;
osgi&amp;gt; 2006/10/26 上午 11:32:58 org.mortbay.http.HttpServer doStart
資訊: Version Jetty/5.1.x
2006/10/26 上午 11:32:58 org.mortbay.util.Container start
資訊: Started org.mortbay.jetty.servlet.ServletHandler@12558d6
2006/10/26 上午 11:32:58 org.mortbay.util.Container start
資訊: Started HttpContext[/,/]
2006/10/26 上午 11:32:58 org.mortbay.http.SocketListener start
資訊: Started SocketListener on 0.0.0.0:80
2006/10/26 上午 11:32:58 org.mortbay.util.Container start
資訊: Started org.mortbay.http.HttpServer@1e859c0

osgi&amp;gt; ss

Framework is launched.

id    State       Bundle
0    ACTIVE      system.bundle_3.3.0.v20060919
4    ACTIVE      org.eclipse.equinox.ds_1.0.0.v20060828
7    ACTIVE      org.eclipse.equinox.log_1.0.100.v20060717
8    ACTIVE      org.eclipse.osgi.services_3.1.100.v20060918
14    ACTIVE      javax.servlet_2.4.0.200610251415
15    ACTIVE      org.apache.commons.logging_1.0.4.200610251415
16    ACTIVE      org.eclipse.equinox.http.jetty_1.0.0.200610251415
17    ACTIVE      org.eclipse.equinox.http.servlet_1.0.0.200610251415
18    ACTIVE      org.mortbay.jetty_5.1.11.200610251415

&lt;/pre&gt;

	&lt;h3&gt;&lt;span class="caps"&gt;JSP&lt;/span&gt;&lt;/h3&gt;


	&lt;p&gt;一樣用 team projext 匯入。根據 maillist 的說法，可能會在 3.3M4 釋出，到時就可以直接拿來用。&lt;/p&gt;


	&lt;p&gt;OSGi based &lt;span class="caps"&gt;JSP&lt;/span&gt; Support&lt;/p&gt;


	&lt;p&gt;http://www.eclipse.org/equinox/server/jsp_support.php&lt;/p&gt;


	&lt;p&gt;http://www.eclipse.org/equinox/server/downloads/jspsupport-anon.psf&lt;/p&gt;


&lt;pre&gt;
Framework is launched.

id    State       Bundle
0    ACTIVE      system.bundle_3.3.0.v20060919
4    ACTIVE      org.eclipse.equinox.ds_1.0.0.v20060828
7    ACTIVE      org.eclipse.equinox.log_1.0.100.v20060717
8    ACTIVE      org.eclipse.osgi.services_3.1.100.v20060918
14    ACTIVE      javax.servlet_2.4.0.200610251415
15    ACTIVE      org.apache.commons.logging_1.0.4.200610251415
16    ACTIVE      org.eclipse.equinox.http.jetty_1.0.0.200610251415
17    ACTIVE      org.eclipse.equinox.http.servlet_1.0.0.200610251415
18    ACTIVE      org.mortbay.jetty_5.1.11.200610251415
27    ACTIVE      javax.servlet.jsp_2.0.0.200610251427
28    ACTIVE      org.apache.commons.el_1.0.0
29    ACTIVE      org.apache.jasper_5.5.17.200610251427
30    ACTIVE      org.eclipse.equinox.jsp.examples_1.0.0
31    ACTIVE      org.eclipse.equinox.jsp.jasper_1.0.0.qualifier
32    ACTIVE      org.eclipse.equinox.jsp.jstl_1.0.0
33    ACTIVE      org.eclipse.equinox.jsp.jstl.examples_1.0.0
&lt;/pre&gt;

	&lt;p&gt;The jsp/jstl examples can be found at :&lt;/p&gt;


	&lt;p&gt;http://localhost/jsp-examples/index.html&lt;/p&gt;


	&lt;p&gt;http://localhost/jstl-examples/index.html&lt;/p&gt;


	&lt;h3&gt;心得&lt;/h3&gt;


	&lt;ol&gt;
	&lt;li&gt;OSGi 的應用慢慢移到 server-side 和 eclipse 的這些年應用推廣很有關係，目前來看，開發一個 Bundle 最方便的方式還是開 eclipse 來用，雖然它的 &lt;span class="caps"&gt;PDE&lt;/span&gt; 環境還不是完整地支援 OSGi 開發，但是應會慢慢變的更完整。就馬上要用的需求來說，eclipse 的 &lt;span class="caps"&gt;PDE&lt;/span&gt; 環境算是十分方便，這點還沒在其開發環境看到。&lt;/li&gt;
		&lt;li&gt;類似 OSGi 的環境猜想應早就有人做過，只是沒到臨界點無法流行，目前 OSGi 有 eclipse &lt;span class="caps"&gt;IDE&lt;/span&gt; 這類比較大的用戶基礎來支撐，可以不斷演進與除錯，這點對於微型應用開發者來說，還蠻重要的。&lt;/li&gt;
	&lt;/ol&gt;</description>
      <pubDate>Wed, 25 Oct 2006 20:38:00 -0700</pubDate>
      <guid isPermaLink="false">urn:uuid:e01be344-aab6-4bbb-85ed-1681b750245f</guid>
      <author>LIN</author>
      <link>http://blog.extremepattern.com/articles/2006/10/25/hello-osgi-jsp-example</link>
      <category>eclipse</category>
      <category>java</category>
    </item>
  </channel>
</rss>
