2016-03-05 74 views
1

我正在使用Netbeans 8.1和Glassfish 4.1創建一個RESTful Web服務。我已經使用Maven Web應用程序來創建服務器應用程序。Glassfish找不到我的文件 - FileNotFoundException

我正在使用發送XML請求並從服務器取回XML響應的客戶端。我的服務器項目中有一個FoodItemData.xml文件,我每次從客戶端收到一個請求時都會讀取它。

我已經存儲了FoodItemData.xml文件中的

project_name -> src -> resources -> FoodItemData.xml

我的項目

每當我跑我的服務器應用程序,Glassfish的引發以下錯誤:

Severe: java.io.FileNotFoundException: E:\GlassFish\glassfish-4.1.1\glassfish\domains\domain1\config\src\resources\FoodItemData.xml (The system cannot find the path specified)

如果我在GlassFish中的「配置」目錄下創建的路徑src/resources/FoodItemData.xml文件,錯誤消失。 我的Glassfish'config'目錄默認沒有src/resources/FoodItemData.xml文件。

我的問題是,有什麼辦法可以讓服務器應用程序自動創建它嗎?因爲我打算在不同的系統上運行這個服務器應用程序,所以我不能總是在Glassfish目錄中手動創建文件夾。

快速幫助,將不勝感激。謝謝!

回答

0

通常,您不應該將資源數據放入您的域配置目錄中。

至於你的問題,你有一些選擇,但這將取決於你在做什麼這個XML。您可以將此目錄+文件添加到您的WEB-INF目錄中。 Here is a good explanation of how that would work

您還可以在Java中創建一個適配器類(這將用於任何服務或功能需要訪問該文件,並且您可以確保只有該類正在訪問該文件),如果該文件是缺少您的domain1根目錄。在啓動時完成一個簡單的方法是在一個靜態塊中(當類加載到內存中時可以創建該目錄)。

最後,如果您使用運行asadmin命令的部署腳本,則可以使用相同的腳本檢查以確保此目錄存在。