Glassfish无法找到我的文件--FileNotFoundException

时间:2016-03-05 21:22:01

标签: xml rest maven netbeans glassfish

我正在使用Netbeans 8.1和Glassfish 4.1创建RESTful Web服务。我使用Maven Web应用程序来创建服务器应用程序。

我正在使用一个发送XML请求的客户端,并从服务器获取XML响应。我的服务器项目中有一个FoodItemData.xml文件,我每次从客户端请求时都会读取该文件。

我已将FoodItemData.xml文件存储在

  

project_name - > src - >资源 - > FoodItemData.xml

我的项目。

每当我运行我的服务器应用程序时,Glassfish都会抛出以下错误:

  

严重:java.io.FileNotFoundException:E:\ GlassFish \ glassfish-4.1.1 \ glassfish \ domains \ domain1 \ config \ src \ resources \ FoodItemData.xml(系统找不到指定的路径)

如果我在' config'中的路径src/resources/FoodItemData.xml处创建文件Glassfish目录,错误消失了。 我的Glassfish'配置'默认情况下,目录没有src/resources/FoodItemData.xml文件。

我的问题是,有什么办法可以让服务器应用程序自动创建它吗?因为我要在不同的系统上运行此服务器应用程序,所以我不能总是在Glassfish目录中手动创建该文件夹。

快速帮助将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:0)

通常,您不应将资源数据放在域配置目录中。

至于你的问题,你有一些选择,但这取决于你对这个xml做了什么。您可以将此目录+文件添加到WEB-INF目录中。 Here is a good explanation of how that would work

您还可以在Java中创建一个适配器类(这将由访问该文件的任何服务或函数使用,并且您可以确保只有这个类正在访问该文件),如果它丢失,将创建目录+文件在您的domain1根目录中。在启动时完成它的一个简单方法是在一个静态块中(当类被加载到内存中时可以创建目录)。

最后,如果您使用的是运行asadmin命令的部署脚本,则可以检查相同的脚本以确保此目录存在。