EAR中的自定义资源

时间:2017-06-12 11:33:33

标签: java maven resources ear

我使用MAVEN在\src\main\application\somedir上创建了一些EAR应用程序 我需要在EAR中放置一些配置文件,日志和用户脚本,以便用户可以通过简单的编辑器读取或写入这些文件,并且可以从任何依赖的ejb或war模块中的任何类读取\ write到这些文件。 我可以将这些文件放在耳模块的getResourceAsStream()目录中, 但我不能通过1.54 3.235 .7 从依赖模块访问这些文件 你能指点我一些解决方案吗? 我必须指出问题。问题不是"我必须放置文件以从特定类加载它们#34; 问题是我必须做什么,如果我需要从EAR的某个模块读取\写入的文件,用户可以通过简单的编辑器编辑它们#34;

2 个答案:

答案 0 :(得分:0)

getResourceAsStream()在类路径中搜索文件。 EAR文件内容不在您的类路径中。

解决方案:将文件置于战争中(在EAR内),然后您可以使用以下java代码阅读它:

*.war\WEB-INF\classes\config.properties

getResourceAsStream("config.properties")

答案 1 :(得分:0)

如果将它放在classes / package / resources(或WEB-INF / classes)中,可以使用类加载器获取一个InputStream,U可以使用这样的泛型:

InputStream isFile = SomeClassInTheSamePackage.class.getResourceAsStream("yourFileName");

如果你正在使用apache / tomcat,你可以使用这样的东西:

String catPath = System.getProperty("catalina.home");//"user.dir"
String path = catPath + "webapps" + File.separator + "nameOfYourApp.ear/.war/.jar";
File myFile = new File(path);
BufferedOutputStream buffer = new BufferedOutputStream(new FileOutputStream(myFile));
//buffer.
buffer.close();

我希望这对你有所帮助。