簡體   English   中英

如何啟動Jetty8僅提供靜態內容?

[英]How do I start Jetty8 to only serve static content?

出於測試目的,我想使用Jetty 8僅提供靜態內容。 我知道如何從命令行啟動Web服務器:

java -jar start.jar jetty.port = 8082

我希望能夠使用香草碼頭,最好是8或7,並使用以下內容啟動它:

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

然后可以從服務器的根目錄訪問這些文件。 應該可以通過http://localhost:8082/x.html訪問名為../foo/x.html的文件。

我不想創建一個WAR文件或任何花哨的東西。 最好不要在服務器端進行任何緩存,使文件在Windows機器上解鎖。 此外,我只想提供文件,甚至位於子目錄中,沒有花哨的文件瀏覽器或從客戶端修改它們的方法。

這可能嗎? 如果沒有,完成此類行為所需的最低配置是什么?

附加信息

我試過以下命令。 我希望能夠使用http://localhost:8080/javadoc/瀏覽Jetty 8附帶的http://localhost:8080/javadoc/ ,但它總能給我一個404

java -jar start.jar --ini OPTIONS =服務器,資源等/ jetty.xml contexts / javadoc.xml

啟動Jetty並使其提供靜態內容的最簡單方法是使用以下xml文件:

靜態的content.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。

--ini將禁用--ini的設置,因此也確保不會激活其他處理程序等。

有點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>

在contextxts目錄下的發行版中有一個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

去那里獲取開始過程的信息

干杯

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM