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