我想向我的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. 將PrimeFaces 4添加到Java EE項目
- 2. Netbeans的:如何將Java EE容器添加到Java項目
- 3. 將.ttf文件添加到java項目
- 4. 如何將jssc.jar添加到Java項目
- 5. 如何將.java文件添加到MonoDroid項目
- 6. 如何將.jar文件手動添加到java項目
- 7. 如何將屬性文件添加到Java項目中?
- 8. 如何將jar文件添加到java rest api項目中?
- 9. 如何將Java JAR文件添加到Grails項目中?
- 10. 如何將類文件添加到新的Java項目
- 11. 如何將文件添加到SSIS項目雜項文件夾
- 12. Java:將庫和txt首選項文件添加到項目
- 13. 如何將現有的NetBeans Java EE 6 Web項目升級到Java EE 7?
- 14. 將文件添加到Xcode項目
- 15. 將.so文件添加到Android項目
- 16. Subversion:將文件添加到項目
- 17. 將文件添加到Xcode項目(SVN)
- 18. 將* .mdf文件添加到C#項目
- 19. Qt - 將文件添加到項目
- 20. 將cocos2d文件添加到xcode項目?
- 21. 將文件添加到我的項目
- 22. 如何將目標文件添加到Qt中的項目中
- 23. 如何將先決條件文件(.prq)添加到InstallShield項目?
- 24. 如何添加asm庫到java項目?
- 25. .vstemplate文件預計將添加到項目項目,但添加到此的項目不是項目項目
- 26. Xcode 9(測試版3)/ iOS:將文件添加到項目 - 如何將文件複製到項目目錄中
- 27. 如何在eclipse項目中將java添加到java聲音中?
- 28. Java的REST API將文件夾添加到項目
- 29. 如何將Java EE項目部署到我的Web服務器?
- 30. Eclipse如何確定項目是否可以添加到Java EE服務器?
給予信貸/鏈接到期的地方: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