我正在尝试从java访问属性文件,当我将其作为独立的Java应用程序运行时,它会工作。但是,当我调用从tomcat服务器上运行的jsp页面访问文件的方法时,我得到一个FileNotFoundException。
我认为当文件部署到服务器时,它们的路径会发生变化,这就是为什么异常发生在Web应用程序中而不是直接发生在java中。下面是我项目的项目浏览器视图。
我从java中的LabelRequestMessages类访问nWMS属性文件。下面是我用java访问该文件的代码。
in = new FileInputStream("resources-dev/com/infosys/gidl2/shiplabel/mybatis/config/"
+ propsDB); //propsDB has the file name
props.load(in);
有人可以告诉我如何提供路径,以便在tomcat服务器中部署时可以访问该文件。
答案 0 :(得分:1)
您正试图在.war
应用程序中获取资源,请考虑使用
private static final String ENDINGS_FILE_NAME = "com/infosys/gidl2/shiplabel/mybatis/config/" + propsDB;
...
InputStream is = getClass( ).getResourceAsStream(ENDINGS_FILE_NAME);
但首先要记住在web.xml
中设置资源文件夹,因为tomcat需要知道在哪里搜索它。
答案 1 :(得分:1)
您需要从类路径引用该文件。尝试
in = this.getClass().getClassLoader().getResourceAsStream("om/infosys/gidl2/shiplabel/mybatis/config/nWMS_database.properties");
确保将resource-dev目录视为源目录,以便它包含在war文件的WEB-INF / classes中。
答案 2 :(得分:1)
尝试将其更改为
new FileInputStream("com.infosys.gidl2.shiplabel.mybatis.config."+ propsDB);