java - 如果我想在 java servlet 中解析它,我应该在哪里找到 xml 文件

标签 java xml servlets

我想在 servlet 中解析 xml 文件,但发生异常,JVM 无法指定 xml 文件位置。

异常(exception)情况

java.io.FileNotFoundException: FormFieldsNames.xml (The system cannot find the file specified)

我尝试将 xml 文件放在项目方向、java src 包和 servlet 包中,但所有这些尝试都得到相同的结果。

我应该在哪里找到 xml 文件,请提前帮助并感谢。

最佳答案

从类路径读取文件的一个常见问题是在 WAR 文件中获取正确的位置。

在 Java 中,一个名为 MyServlet 的 servlet 可以像这样引用文件

InputStream is=MyServlet.getClass().getResourceAsStream("/path/to/file/example.txt")

这将找到存储在

下的文件
WEB-INF/classes/path/to/file/example.txt

请注意前导/,它经常会让人感到困惑。

应用程序容器可以从本地文件系统读取(假设您想要获取外部属性但不想使用 JNDI)。为此,您将使用通常的文件访问过程:

InputStream fis = FileInputStream(new File("/usr/share/myapp/another-example.txt"));

当然,如果您想将 DOM 指向它,那么 MyServlet 可以包含以下内容:

DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder documentBuilder = dbf.newDocumentBuilder();
InputStream is = MyServlet.getClass().getResourceAsStream("/path/to/my/example.xml");
Document document = documentBuilder.parse(new InputSource(is));
// And start exploring the NodeList...
NodeList nodeList = document.getFirstChild().getChildNodes();

这应该可以解决问题。

关于java - 如果我想在 java servlet 中解析它,我应该在哪里找到 xml 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4294282/

相关文章:

php - 使用 DOMDocument 在 XML 中附加 QBXML 声明

php - 使用php解析XML数据放入mysql数据库

java.lang.ClassNotFoundException : org. hibernate .HibernateException

java - 设置 Neo4J J2EE 项目时出现问题

Java Swing 线程安全和 EDT

java - 空指针异常

xml - 添加超链接到 indesign

java - 在 JSP 中,我如何使用 JSTL 检查请求中是否存在某些 session 属性?

servlets - Servlet 与 Bean

java - 如何使用Java流获取存储在类的对象的Arraylist中的String和ArrayList