我在我的頭上撞牆...我有一個(迄今相當簡單)谷歌應用程序引擎項目。在運行期間,我想讀取一些XML文件(資源文件,而不是servable-static文件)進行處理。在做了一些研究之後,我決定通過servlet上下文來讀取資源文件(類似於以下內容)。在開發服務器上工作得很好。部署應用程序跳過資源文件
final InputStream inputStream1 = servletContext.getResourceAsStream(「/」+ pathToXmlFile);
問題:在雲中不起作用。首先,我想如何加載資源的方式是錯誤的,但我注意到有問題的XML文件根本沒有上傳。它目前位於:
的src /主/ web應用/數據/ stuff.xml和 的src /主/ web應用/ WEB-APP /數據/ stuff.xml
(我沒」確保將XML文件放置在何處,以便將它複製到兩個位置。)部署日誌顯示文件如何被跳過:
2017-08-10 13:13:42,451 DEBUG root跳過[data/stuff.xml]
2017-08-10 13:13:42,461調試root跳過上傳o f [WEB-INF/data/stuff.xml]
我嘗試了很多事情,但都沒有成功,以部署文件。事情我想:
- 清除出臨時臨時目錄
- 手動清潔構建
- 重命名的目錄/文件
- 包括classes目錄
- 與資源的文件播放周圍內的文件(刪除它,使用各種語法)
- 從雲中刪除舊版本的應用程序
- 重啓Eclipse
僅供參考,AppEngine上-web.xml中的當前內容
<resource-files>
<include path="/data/*.xml" />
<include path="data/*.xml" />
</resource-files>
(不知道是否斜線需要....)
注意,部署,但這工作改變/新的.class文件,所以我對Java類的更改上傳得很好。不知何故,部署機制無法識別XML文件也必須上傳。
僅供參考 - 視窗時,Eclipse 4.7,Java的8,雲工具1.2.0.201706082053
任何幫助表示讚賞,特別是如果有人知道的部署機制如何決定哪些文件來部署!
在引用的部分結尾處:'注意:如果路徑字符串不是以斜槓開頭,那麼HTTP標頭(如果有)在App Engine上工作,但在開發服務器上不起作用。「 –
按照建議使用/data/**.xml。最初它沒有什麼區別,但是我「接觸」了XML文件(添加了一些空白區域),現在似乎已經上傳了。日誌中顯示「正在上傳......分段\ __靜態__/data/stuff.xml」 - 「靜態」讓我擔心一些,但我會試一試,看看它是否適用於雲。 –