2014-10-07 64 views
0

我嘗試通過this tutorial啓動Jersey + Jetty + Nginx,我無法使用war文件。我如何啓動我的Java應用程序?使用jetty啓動java應用程序,無WAR文件

我就開始BackendServer.java通過右鍵點擊應用,然後點擊「運行」,在思想或使用終端java -cp /home/example/backend/build/WEB-INF/lib/backend.jar:/home/example/backend/libs/* com.example.backend.BackendServer

項目結構描述here.

/opt/jetty/webapps/backend.xml

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE Configure PUBLIC 
    "-//Mort Bay Consulting//DTD Configure//EN" 
    "http://www.eclipse.org/jetty/configure_9_0.dtd"> 

<!-- 
    Configure a custom context for serving javadoc as static resources 
--> 

<Configure class="org.eclipse.jetty.server.handler.ContextHandler"> 
    <Set name="contextPath">/</Set> 
    <Set name="resourceBase"><SystemProperty name="jetty.home" default="."/>??????????</Set> 
    <Set name="handler"> 
    <New class="org.eclipse.jetty.server.handler.ResourceHandler"> 
     <Set name="welcomeFiles"> 
     <Array type="String"> 
      <Item>index.html</Item> 
     </Array> 
     </Set> 
     <Set name="cacheControl">max-age=3600,public</Set> 
    </New> 
    </Set> 
</Configure> 

應該是什麼,而不是????????我應該在BackendServer.java中使用嵌入式碼頭嗎?我知道我有重定向從nginx的請求,渡頭,但我不明白我怎麼能開始與碼頭球衣應用...

回答

0

鏈接的例子/教程,以及相關的早期問題是不兼容的。

的教程是碼頭6(現在不可能過時),並全部採用嵌入式碼頭,啓用了部署和一切。

你之前的問題設置了一個com.sun.net.httpserver.HttpServer這不是一回事。

resourceBase是您可能想要服務的任何Web應用程序內容的根目錄。

由於您使用的是簡單ContextHandler,那麼應該指向你的磁盤上的目錄。

如果你使用的是WebAppContext,那麼應該指向你的webapp根目錄(其中類似WEB-INF/web.xmlWEB-INF/classes可選文件會)

ResourceHandler您已經定義應該使用ContextHandler.resourceBase

注意ResourceHandler是服務最起碼的,最簡單的靜態文件。 如果您的Web客戶端有任何要求執行緩存查找,恢復下載,部分下載或MIME類型的控件,請使用DefaultServlet

另外,如果你想要的是在嵌入式碼頭一個文件服務器,你爲什麼要使用XML部署一個基本ContextHandler?只要寫入您的嵌入式碼頭服務,這將變得如此簡單。

一些嵌入式碼頭示例代碼可能證明對你有用:

相關問題