Jetty勉強2.EclipseにJettyプラグインをインストールする
jettyのインストールと実行
Jettyのdistribution圧縮パッケージをダウンロードした後、解凍し、端末またはコマンドプロンプトに解凍したjetty-distribution-xxxディレクトリ(jetty_home)に入り、実行する
[html] view plain copy
java -jar start.jar
jettyを起動します(jetty_homeディレクトリの下でこのコマンドを実行しなければなりません.そうしないとfilenotfoundエラーが表示されます).デフォルトで起動されたhttpポートはtomcatと同じ8080です.
jetty_home/webapps/ディレクトリのwarファイルが起動するwebプロジェクトです.
eclipse jeeでjettyを使用するには、次の2つの方法を試してみました.
1.jetty server adapterの追加
一つはeclipseのserverビューにjettyを追加するアダプタですが、eclipse jee Heliosにはjetty 6のアダプタしかないようです(jettyバージョンの更新は速いですが、実はjetty 6は09年に発表されたもので、古くはありません)、高バージョンのeclipseはより高いバージョンのjettyをサポートできるかもしれません.
ダウンロードjetty 6:
http://dist.codehaus.org/jetty/jetty-6.1.x/jetty-6.1.3.zip
eclipseを開き、Window->PreferenceでServer->Runtime Environmentsを選択します.
右側のAddをクリック:
Download additional server adaptersをクリックします.
更新が完了すると、Jetty Generic Server Adapterが表示されます.
eclipseのserversビューでサーバを新規作成するには、次の手順に従います.
Jetty 6を選択し、次のステップで構成すればいい、Jetty_ホームはさっき解凍したjetty 6のディレクトリを選択すればいいです.ポートは他のサービスと衝突しないでください.
eclipseでdynamic web projectを新規作成し、dynamic web module version 2.2を選択し、Web contentの下にindexを書きます.jsp、右クリックエンジニアリング、Run as->run on server、さっき新築したjetty 6 at localhostを選択すると、tomcatを使うのと何の違いもありません.
2.run-jetty-runプラグインのインストール
もう1つの方法はeclipseにrun-jetty-runプラグインをインストールすることです.この方法がいいと思います.jetty 7、8をサポートできます.インストール方法は以下の通りです.
eclipseメニューバーで、Run->Install newソフトウェア->Add、アドレスを入力します.http://run-jetty-run.googlecode.com/svn/trunk/updatesiteを選択します.
OK、そしてRunJettyRunをチェックすればいいです
その後、一歩ずつインストールすればいいです.
インストール後はjettyもインストールする必要がなく、プラグインにはjetty 6、7、8が付いています.新しいdynamic web project、右クリックエンジニアリング、Run as->Run configuration:
(最初の操作でrun configurationでは工事が発生していない可能性がありますが、左上の新しいボタンをクリックすればいいです)デフォルトの構成があり、必要に応じてポートやその他の構成を変更した後、runでいいです.構成の詳細
http://code.google.com/p/run-jetty-run/wiki/GettingStarted
http://code.google.com/p/run-jetty-run/wiki/RJRConfigurations
ブラウザを開き、アドレスを入力http://localhost:8080/jettytestさっきのwebプロジェクトを表示できます.
run-jetty-runでcss,jsファイルをロックする問題を解決する
開発ではrun-jetty-runプラグインでjetty変調tapestry 5アプリケーションを起動します.tapestry 5のlive class loaderはとても爽やかで、page classを変更してもhtmlテンプレートを変更してもserverを再起動する必要はありません.しかし、jettyが起きた後css、jsファイルがjettyにロックされ、eclipseでは修正できない例外があります.だからcss jsを変更するのはとても面倒で、変更するたびにjettyを再起動します.Googleはその後、元のものを発見しました.
Jetty buffers static content for webapps such as html files,css files,images etc and uses memory mapped files to do this if the NIO connectors are being used.The problem is that on Windows, memory mapping a file causes the file to be locked, so that the file cannot be updated or replaced. This means that effectively you have to stop Jetty in order to update a file.
道理で以前ubuntuの下でこの問題がなくて、windowsの下でこの問題を発見しました.
解決策はrun-jetty-runプラグインの中のjettyを見つけることです.jar.jetty.jarはeclipseのjetty起動中のClasspathで見つけることができます.下図を見る
見つけたJAr後解凍、org/mortbay/jetty/webapp/webdefaultを編集する.xmlというファイル.useFileMappedBufferをfalseに変更します.ここではmemory mapped fileを無効にします.
Jettyのdistribution圧縮パッケージをダウンロードした後、解凍し、端末またはコマンドプロンプトに解凍したjetty-distribution-xxxディレクトリ(jetty_home)に入り、実行する
[html] view plain copy
java -jar start.jar
jettyを起動します(jetty_homeディレクトリの下でこのコマンドを実行しなければなりません.そうしないとfilenotfoundエラーが表示されます).デフォルトで起動されたhttpポートはtomcatと同じ8080です.
jetty_home/webapps/ディレクトリのwarファイルが起動するwebプロジェクトです.
eclipse jeeでjettyを使用するには、次の2つの方法を試してみました.
1.jetty server adapterの追加
一つはeclipseのserverビューにjettyを追加するアダプタですが、eclipse jee Heliosにはjetty 6のアダプタしかないようです(jettyバージョンの更新は速いですが、実はjetty 6は09年に発表されたもので、古くはありません)、高バージョンのeclipseはより高いバージョンのjettyをサポートできるかもしれません.
ダウンロードjetty 6:
http://dist.codehaus.org/jetty/jetty-6.1.x/jetty-6.1.3.zip
eclipseを開き、Window->PreferenceでServer->Runtime Environmentsを選択します.
右側のAddをクリック:
Download additional server adaptersをクリックします.
更新が完了すると、Jetty Generic Server Adapterが表示されます.
eclipseのserversビューでサーバを新規作成するには、次の手順に従います.
Jetty 6を選択し、次のステップで構成すればいい、Jetty_ホームはさっき解凍したjetty 6のディレクトリを選択すればいいです.ポートは他のサービスと衝突しないでください.
eclipseでdynamic web projectを新規作成し、dynamic web module version 2.2を選択し、Web contentの下にindexを書きます.jsp、右クリックエンジニアリング、Run as->run on server、さっき新築したjetty 6 at localhostを選択すると、tomcatを使うのと何の違いもありません.
2.run-jetty-runプラグインのインストール
もう1つの方法はeclipseにrun-jetty-runプラグインをインストールすることです.この方法がいいと思います.jetty 7、8をサポートできます.インストール方法は以下の通りです.
eclipseメニューバーで、Run->Install newソフトウェア->Add、アドレスを入力します.http://run-jetty-run.googlecode.com/svn/trunk/updatesiteを選択します.
OK、そしてRunJettyRunをチェックすればいいです
その後、一歩ずつインストールすればいいです.
インストール後はjettyもインストールする必要がなく、プラグインにはjetty 6、7、8が付いています.新しいdynamic web project、右クリックエンジニアリング、Run as->Run configuration:
(最初の操作でrun configurationでは工事が発生していない可能性がありますが、左上の新しいボタンをクリックすればいいです)デフォルトの構成があり、必要に応じてポートやその他の構成を変更した後、runでいいです.構成の詳細
http://code.google.com/p/run-jetty-run/wiki/GettingStarted
http://code.google.com/p/run-jetty-run/wiki/RJRConfigurations
ブラウザを開き、アドレスを入力http://localhost:8080/jettytestさっきのwebプロジェクトを表示できます.
run-jetty-runでcss,jsファイルをロックする問題を解決する
開発ではrun-jetty-runプラグインでjetty変調tapestry 5アプリケーションを起動します.tapestry 5のlive class loaderはとても爽やかで、page classを変更してもhtmlテンプレートを変更してもserverを再起動する必要はありません.しかし、jettyが起きた後css、jsファイルがjettyにロックされ、eclipseでは修正できない例外があります.だからcss jsを変更するのはとても面倒で、変更するたびにjettyを再起動します.Googleはその後、元のものを発見しました.
Jetty buffers static content for webapps such as html files,css files,images etc and uses memory mapped files to do this if the NIO connectors are being used.The problem is that on Windows, memory mapping a file causes the file to be locked, so that the file cannot be updated or replaced. This means that effectively you have to stop Jetty in order to update a file.
道理で以前ubuntuの下でこの問題がなくて、windowsの下でこの問題を発見しました.
解決策はrun-jetty-runプラグインの中のjettyを見つけることです.jar.jetty.jarはeclipseのjetty起動中のClasspathで見つけることができます.下図を見る
見つけたJAr後解凍、org/mortbay/jetty/webapp/webdefaultを編集する.xmlというファイル.useFileMappedBufferをfalseに変更します.ここではmemory mapped fileを無効にします.
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>true</param-value> <!-- change to false -->
</init-param>