我在tomcat上的WebApp中使用第三方库。
问题是该类第三方库需要使用XML文件进行初始化
LibraryClass lb = new LibraryClass("file path.xml");
那么我应该把文件放在tomcat目录中以便能够从webapp中访问它们?
(请注意,该类要求绝对路径为String
,而不是FileStream
,例如)
答案 0 :(得分:1)
如果您不希望文件可下载,请将其放在Java源目录中的某个位置,然后将其复制到WEB-INF / classes中。然后使用ServletRequest.getRealPath("/WEB-INF/classes/...")
将相对路径转换为绝对路径。
答案 1 :(得分:1)
您可以将它们保存在WEB-INF / classes文件夹下。您可以在此处看到有关此内容的完整讨论: Where to place configuration properties files in a JSP/Servlet web application?
答案 2 :(得分:0)
与其他答案一样,我同意这些文件的最佳位置在war
捆绑包中。与其他答案不同,我不建议将文件放在WEB-INF/classes
中,因为该目录是 class 文件,而不是XML文件。
如果path.xml
位于战争的根目录中,那么你可以通过以下方式访问它:
String servletDirectoryPath = this.getServletConfig().getServletContext().getRealPath("");
String xmlConfigurationFileName = "path.xml";
File xmlConfigurationFile = new File(servletDirectoryPath, xmlConfigurationFileName);
initializeThirdPartyLibrary(xmlConfigurationFile);