【问题标题】:Wrong file path used while running web application运行 Web 应用程序时使用了错误的文件路径
【发布时间】:2015-02-13 23:33:32
【问题描述】:

我正在使用 Spring 工具套件开发一个 Spring 应用程序。我的基本目标是读取现有的 xml 文件并用它做一些事情。 我面临的问题是在服务器(tomcat 8.0.18)上运行我的代码时我无法使用相对文件路径。但如果我测试与 Java 应用程序相同的代码,它运行良好。
我的文件夹结构 -

RootFolder
-- src/main/java
-- -- package_name
-- -- -- FileAccessingClass.java
-- data
-- -- xmlFile.xml

我收到以下错误-

/Users/amit/Desktop/sts-bundle/sts-3.6.3.SR1/STS.app/Contents/MacOS/data/xmlFile.xml (No such file or directory)
Feb 13, 2015 3:27:29 PM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet [appServlet] in context with path [/metaract] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause
java.lang.NullPointerException
    at com.crmantra.metaract.services.ServiceRequests.prepareData(ServiceRequests.java:49)
    at com.crmantra.metaract.services.ServiceRequests.sendRequest(ServiceRequests.java:34)
    at com.crmantra.metaract.controllers.LoginController.login(LoginController.java:27)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

我不明白它为什么要在安装了我的 STS 的桌面上查找文件。
如果问题不够清楚,请告诉我。任何帮助将不胜感激。

【问题讨论】:

    标签: java spring relative-path spring-tool-suite


    【解决方案1】:

    尝试获取相对于类路径的资源。我假设您已将数据文件夹包含在您的类路径中......然后您可以执行以下操作:

    getClass().getResource("/data/xmlFile.xml")
    

    【讨论】:

      【解决方案2】:

      您是否已将 maven 配置为将 data 文件夹的内容与您的工件捆绑在一起?如果你不是特别喜欢这个文件夹,只要把它放在/src/main/resources 中,并将其引用为/filename.xml 作为资源名称

      【讨论】:

        猜你喜欢
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-09-09
        • 2013-01-30
        • 2012-10-28
        相关资源
        最近更新 更多