我想向我的Java ee项目添加一个xml文件,并在我的代码中使用它,但是当我从src目录寻址文件时,它不理解我的地址并在tomcat的bin目录中搜索文件。 我的项目使用了检票框架和JavaEE。 是否有人知道如何解决该文件或我应该在哪里放置文件以访问来自项目?如何将文件添加到Java EE项目?
回答
如果你的XML文件,必须只访问服务器端的资源,那么最好的选择是将它放在WEB-INF目录下你的战争中,还是在WEB-INF里面的一些子目录。通过这种方式,您可以确保网络无法访问资源。
然后你就可以使用ServletContext.getResource检索,由彼得·指出
例如,在一个servlet,你可以找回这种方式(处理省略除外):
String path = "/WEB-INF/my.xml";
URL url = getServletConfig().getServletContext().getResource(path);
InputStream in = url.openStream();
// read content from input stream...
里面你的servlet,您可以:
this.getServletContext().getResource(path);
public java.net.URL getResource(java.lang.String path)
throws java.net.MalformedURLException
返回一个URL映射到指定路径的资源。该路径必须以“/”开头,并解释为相对于当前上下文根。
此方法允许servlet容器为任何来源的servlet提供资源。资源可以位于本地或远程文件系统,数据库或.war文件中。
servlet容器必须实现访问资源所需的URL处理程序和URLConnection对象。
如果没有资源映射到路径名,此方法返回空值。
某些容器可能允许使用URL类的方法写入由此方法返回的URL。
资源内容是直接返回的,因此请注意请求.jsp页面返回JSP源代码。而是使用RequestDispatcher来包含执行结果。
此方法与java.lang.Class.getResource不同,它根据类加载器查找资源。此方法不使用类加载器。
通常src在运行时不使用。我不使用tomcat,但在我的环境中,我构建了将非Java文件从src复制到bin目录的任务。
您可能会发现需要使用类加载器getResourceAsStream()来打开文件,以便您可以搜索与类相同的目录。
这假定您想要在应用程序中提供XML 。或者,您可能更喜欢将它放在其他地方。 URI资源引用可能有所帮助
为什么不把XML文件放在资源目录中。你可以从任何类访问它:
MyClass.class.getClassLoader()。getResourceAsStream(filename);
- 1. 将.ttf文件添加到java项目
- 2. 如何将.java文件添加到MonoDroid项目
- 3. 如何将类文件添加到新的Java项目
- 4. 如何将jar文件添加到java rest api项目中?
- 5. 如何将.jar文件手动添加到java项目
- 6. Java:将库和txt首选项文件添加到项目
- 7. Subversion:将文件添加到项目
- 8. Qt - 将文件添加到项目
- 9. 将* .mdf文件添加到C#项目
- 10. 将文件添加到Xcode项目
- 11. 将文件添加到我的项目
- 12. 将cocos2d文件添加到xcode项目?
- 13. 将.so文件添加到Android项目
- 14. 如何将目标文件添加到Qt中的项目中
- 15. .vstemplate文件预计将添加到项目项目,但添加到此的项目不是项目项目
- 16. 如何在eclipse项目中将java添加到java声音中?
- 17. Xcode 9(测试版3)/ iOS:将文件添加到项目 - 如何将文件复制到项目目录中
- 18. 将Grails项目和Java Web项目添加到EAR项目
- 19. 将资源添加到Java项目
- 20. Java将项目添加到集合
- 21. 将框架添加到java项目
- 22. 如何将JSON文件添加到我的项目中
- 23. 如何将cs文件添加到现有的C#项目?
- 24. 如何将.mm文件添加到项目中?
- 25. 如何将文件添加到xcode iphone项目中的.plist?
- 26. 如何将xml文件添加到我的项目中?
- 27. 如何将文件夹添加到数据库项目?
- 28. 如何使用CMake将文件添加到Eclipse CDT项目?
- 29. 如何将.rc文件添加到eclipse中的项目中
- 30. 如何将外部配置文件添加到C++项目?
给予信贷/链接到期的地方:http://java.sun.com/products/servlet/2.3/javadoc/javax/servlet/ServletContext。html#getResource(java.lang.String) – 2009-08-11 13:13:18
它的JEE,我们是否真的需要说明它来自哪里?答案是有帮助和相关的,不会降低downvote – djna 2009-08-11 13:26:51
,但它只是从源代码复制并粘贴,没有任何参考。 – 2009-08-11 15:17:43