【问题标题】:java.io.FileNotFoundException: .\cfg\users (The system cannot find the path specified)java.io.FileNotFoundException: .\cfg\users(系统找不到指定的路径)
【发布时间】:2018-09-23 12:41:45
【问题描述】:

我创建了一个动态 Web 项目(用于生成和发送报告)

Eclipse 中的项目层次结构

Project
  src(folder)
         -metier(Package)
                  -Util.java(Class)
         -web
                  -ControlleurServlet.java (Servlet)  
  cfg(folder)
         -USERS(file) 

  WebContent
         - gui.jsp (Html form)

当我将 Util 类(方法:sendMail)作为 Java 项目运行时:

实用类:

public class Util {
    static String cvsSplitBy = ";";
public  static String MAILCONFIGURATION="./cfg/mailConfiguration";
public  static String USERS="./cfg/users";
public  static String SHIFTS="./cfg/shifts";
.
.
.

sendMail 方法从文件中检索一些数据。

但是当我在服务器上运行项目并从 Servlet 调用 sendMail 时,我收到了这个错误:

INFO: Server startup in 10135 ms
java.io.FileNotFoundException: .\cfg\users (The system cannot find the path specified)
    at java.io.FileInputStream.open0(Native Method)
    at java.io.FileInputStream.open(Unknown Source)
    at java.io.FileInputStream.<init>(Unknown Source)
    at metier.Util.getUsers(Util.java:130)
    at web.ControleurServlet.doGet(ControleurServlet.java:37)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1136)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Unknown Source)

你能帮忙吗?

问候

【问题讨论】:

  • 您使用的相对路径。相对路径是从 当前 目录解析的。当前目录是启动 JVM 的目录。在您的情况下,启动 Tomcat 服务器的目录。使用绝对路径。

标签: java jsp tomcat web servlet-3.0


【解决方案1】:

servlet 上下文未指向您保存文件的同一路径,

这样您就可以检查上下文路径并将文件夹保存在适当的位置。

应该能解决你的问题

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 2022-08-07
    • 2014-12-19
    • 2013-11-24
    • 1970-01-01
    • 2019-10-15
    • 2012-05-28
    • 2017-11-21
    相关资源
    最近更新 更多