2012-06-28 61 views
6

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

Java的罐子start.jar jetty.port = 8082

我想是能夠使用香草碼頭,優選8或

Java的罐子start.jar OPTIONS =資源resources.root = .. /富jetty.port = 8082

費爾:7,以及使用類似啓動它es應該可以從服務器的根目錄訪問。應通過http://localhost:8082/x.html訪問名爲../foo/x.html的文件。

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

這可能嗎?如果不是,完成此類行爲所需的最低配置是多少?

信息

我試過下面的命令。我希望能夠瀏覽隨用http://localhost:8080/javadoc/碼頭8 javadoc的,但它總是給我一個404

Java的罐子start.jar --ini OPTIONS =服務器,資源等/的jetty.xml環境/ javadoc.xml

+0

之所以HTTP://本地主機:8080 /的Javadoc /不起作用是因爲在您的碼頭主目錄中沒有名爲'javadoc'的目錄。我不明白爲什麼jetty將這個作爲一個例子,當jetty發行版不附帶javadoc時。爲了使上述網址工作,您只需在您的碼頭主目錄中創建目錄'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,當前豬病將被使用;如果您省略jetty.port,則將使用端口8080。

--ini將從start.ini禁止設置,因此也確保沒有其他處理程序等將被激活。

+0

猜你簡單是相對的,但我會+1,並將其添加到碼頭文件在某些​​時候,謝謝! –

0

在上下文目錄下的發行版中,有一個javadoc.xml,您可以使用它作爲示例來說明如何輕鬆完成此操作。

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

這就是它實際上看起來像

你正在尋找改變上下文路徑和資源基礎

會也建議剛剛從啓動去除碼頭,webapps.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>