我正在使用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目录中手动创建该文件夹。
快速帮助将不胜感激。谢谢!
答案 0 :(得分:0)
通常,您不应将资源数据放在域配置目录中。
至于你的问题,你有一些选择,但这取决于你对这个xml做了什么。您可以将此目录+文件添加到WEB-INF目录中。 Here is a good explanation of how that would work
您还可以在Java中创建一个适配器类(这将由访问该文件的任何服务或函数使用,并且您可以确保只有这个类正在访问该文件),如果它丢失,将创建目录+文件在您的domain1根目录中。在启动时完成它的一个简单方法是在一个静态块中(当类被加载到内存中时可以创建目录)。
最后,如果您使用的是运行asadmin命令的部署脚本,则可以检查相同的脚本以确保此目录存在。