我有一個嵌入式的Jetty應用程序,其中碼頭將提供兩件事情:嵌入式碼頭停止提供靜態內容
- 服務的一些HTML/JS文件
- 露出了REST API,我的Java Servlet是支持
JS文件正在對servlet進行REST調用。一切都很好。
我已經注意到的是,大約一個星期的運行後,該API仍然功能,但如果我試圖讓一個HTML文件,我得到如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 404 Not Found</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /web/. Reason:
<pre> Not Found</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.4.v20170414</a><hr/>
</body>
</html>
可能是錯誤怎麼回事?
不確定這是否有意義,但是我將其部署到Amazon AWS EC2實例中。我無法想象EC2正在做一些讓/ web目錄消失的事情。
沒有XML代碼,但我以編程方式完成相同的設置。 你的建議非常有意義。不幸的是,這個應用程序將被部署到很多環境(Windows,RaspPi Linux,Amazon EC2 Linux等),每個環境都有自己的怪癖。有什麼我可以設定的臨時目標,將在任何地方工作? 非常感謝您的幫助。 (快捷!) –
@Sander我們在應用程序中使用碼頭所以我們安裝的控制和設置'java.io.tmpDir'因此,以確保問題不再發生。一個簡短的谷歌搜索出現了https://stackoverflow.com/questions/19232182/jetty-starts-in-c-temp/19232771#19232771也許這有助於你的 – Lothar
@SanderSmith另外,你可以嘗試設置'extractWAR'爲'false'(保持'copyWebInf'爲'true',否則如果Jetty還沒有修復這個問題,那麼你的servlet很可能不再工作了。這應該將靜態內容保留在文件系統之外。但我在練習中沒有嘗試過,所以這只是一個猜測。 – Lothar