2012-06-28 4 views
6

テスト目的のために、静的コンテンツのみを提供するためにJetty 8を使用したいと思います。私は、コマンドラインからWebサーバを起動する方法を知っている:私はバニラ突堤を使用できるようにしたいと思い静的コンテンツのみを配信するJetty8の起動方法を教えてください。

のjava -jar start.jar jetty.port = 8082

、好ましくは8か

のjava -jar start.jar OPTIONSの=資源resources.root = ../fooのjetty.port = 8082

FIL:7、およびのようなものを使用して、それを開始esはサーバーのルートからアクセスできるはずです。 ../foo/x.htmlというファイルには、http://localhost:8082/x.htmlでアクセスする必要があります。

私はWARファイルなど何も作成したくありません。サーバー側ではキャッシングを行わず、Windowsマシン上でファイルをロックしないようにするのが望ましい。また、私は、サブディレクトリ、ファンシーなファイルブラウザ、またはクライアントからそれらを変更する方法でも、ファイルを提供したいだけです。

これは可能ですか?そうでない場合は、そのような動作を達成するために最低限必要な設定は何ですか?

追加情報

私は、次のコマンドを試してみました。私は、突堤8はhttp://localhost:8080/javadoc/を使用して出荷されたJavadocを閲覧することができると期待が、それは常に/私など--ini OPTIONS =サーバー、リソース/ jetty.xmlコンテキストをstart.jar -jar 404

のjavaを与えますjavadoc.xml

+0

理由にhttp:// localhost:8080/javadocツール/は動作しません。あなたのjettyホームディレクトリに 'javadoc'という名前のディレクトリが存在しないためです。桟橋の流通にjavadocが付属していないときに、桟橋がこれを出荷している理由を私は理解していません。上記のURLを動作させるには、あなたのjettyホームにディレクトリ 'javadoc'を作成し、 'javadoc'ディレクトリに 'index.html'というhtmlファイルを作成するだけです。上記の手順が必要な理由を知るには、 'webapps'ディレクトリのjavadoc.htmlを見てください。 – Parvez

答えて

5

最も簡単な方法は、次のXMLファイルを使用している情報のためにそこに行く:

静的コンテンツ。XML:

<?xml version="1.0"?> 
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd"> 

<Configure id="FileServer" class="org.eclipse.jetty.server.Server"> 
    <Call name="addConnector"> 
     <Arg> 
      <New class="org.eclipse.jetty.server.nio.SelectChannelConnector"> 
      <Set name="host"><Property name="jetty.host" /></Set> 
      <Set name="port"><Property name="jetty.port" default="8080"/></Set> 
      </New> 
     </Arg> 
    </Call> 

    <Set name="handler"> 
     <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
     <Set name="resourceBase"><Property name="files.base" default="./"/></Set> 
     </New> 
    </Set> 
</Configure> 

あなたが使用して桟橋を開始することができるより:

java -jar start.jar --ini static-content.xml files.base=./foo jetty.port=8082 

あなたがfiles.baseを省略すると、現在のdirecoryが使用されます。 jetty.portを省略すると、ポート8080が使用されます。

--iniは、start.iniの設定を無効にするため、他のハンドラなどがアクティブにならないようにします。

+0

推測は簡単ですが、私はそれを+1し、ある時点で桟橋の文書に追加します。ありがとう! –

0

contextsディレクトリの下のディストリビューションでは、これを簡単に行う方法の例として使用できるjavadoc.xmlがあります。それは実際にあなたがコンテキストパスと資源基盤

を変更しようとしている

のように見えるものでもちょうどでスタートアップから桟橋-webapps.xmlを取り除く推薦

http://git.eclipse.org/c/jetty/org.eclipse.jetty.project.git/tree/jetty-distribution/src/main/resources/contexts/javadoc.xml

start.iniファイルと展開したくないコンテキストファイルを削除する

start.iniファイルの他のオプションのいくつかを設定することもできます。

http://wiki.eclipse.org/Jetty/Feature/Start.jar

桟橋を開始し、それが静的なコンテンツを提供持ってスタート処理

歓声

+0

フィードバックとポインターに感謝します。何らかの理由で私はそれを動作させることはできません。私は今、独自のジェネリックソリューションを作成するための基礎としてetc/jetty-fileserver.xmlを使用しました。 –

1

offtopicのビットが、Mavenを使って誰かがこの(静的リソースがtarget/webにコピーされていると仮定)のように、この何かしたいことがあります。

<plugin> 
    <groupId>org.mortbay.jetty</groupId> 
    <artifactId>jetty-maven-plugin</artifactId> 
    <version>8.1.9.v20130131</version> 
    <executions> 
     <execution> 
      <id>start-jetty</id> 
      <phase>install</phase> 
      <goals> 
       <goal>start</goal> 
      </goals> 
      <configuration> 
       <webAppConfig> 
        <resourceBases> 
         <contextPath>/</contextPath> 
         <resourceBase>${project.build.directory}/web</resourceBase> 
        </resourceBases> 
       </webAppConfig> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
関連する問題