8

テスト目的で、Jetty 8 を使用して静的コンテンツのみを提供したいと考えています。コマンドラインからWebサーバーを起動する方法を知っています:

java -jar start.jar jetty.port=8082

バニラの Jetty、できれば 8 または 7 を使用して、次のようなものを使用して開始できるようにしたいと考えています。

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

ファイルは、サーバーのルートからアクセスできる必要があります。と呼ばれるファイルは../foo/x.html、 経由でアクセスできる必要がありますhttp://localhost:8082/x.html

WAR ファイルや凝ったものを作成したくありません。サーバー側でキャッシュを行わず、Windows マシンでファイルのロックを解除したままにすることをお勧めします。また、サブディレクトリにある場合でも、ファイルを提供したいだけで、派手なファイルブラウザーやクライアントからそれらを変更する方法はありません。

これは可能ですか?そうでない場合、そのような動作を実現するために必要な最小構成は何ですか?

追加情報

次のコマンドを試しました。を使用して Jetty 8 に同梱されている javadoc を参照できるとhttp://localhost:8080/javadoc/思っていましたが、常に 404 が表示されます。

java -jar start.jar --ini OPTIONS=サーバー、リソースなど/jetty.xml contexts/javadoc.xml

4

3 に答える 3

6

Jetty を起動して静的コンテンツを提供する最も簡単な方法は、次の 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>

以下を使用して Jetty を起動できます。

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

files.base を省略すると、現在のディレクトリが使用されます。jetty.port を省略すると、ポート 8080 が使用されます。

--inistart.ini からの設定を無効にします。そのため、他のハンドラなどがアクティブ化されていないことも確認してください。

于 2012-06-29T13:18:42.777 に答える
1

少し話題から外れていますが、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>
于 2013-09-12T14:19:32.223 に答える
0

contexts ディレクトリの下のディストリビューションには、これを簡単に行う方法の例として使用できる javadoc.xml があります。

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

それが実際にどのように見えるかです

コンテキストパスとリソースベースを変更しようとしています

また、start.ini ファイルのスタートアップから jetty-webapps.xml を削除し、デプロイしたくないコンテキスト ファイルも削除することをお勧めします。

必要に応じて、start.ini ファイルの他のオプションの設定も確認できます。

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

開始プロセスの情報については、そこにアクセスしてください

乾杯

于 2012-06-28T15:48:04.227 に答える