Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.io.FileNotFoundException:。\cfg\users(系统找不到指定的路径)_Java_Jsp_Tomcat_Web_Servlet 3.0 - Fatal编程技术网

java.io.FileNotFoundException:。\cfg\users(系统找不到指定的路径)

java.io.FileNotFoundException:。\cfg\users(系统找不到指定的路径),java,jsp,tomcat,web,servlet-3.0,Java,Jsp,Tomcat,Web,Servlet 3.0,我创建了一个动态Web项目(用于生成和发送报告) Eclipse中的项目层次结构 Project src(folder) -metier(Package) -Util.java(Class) -web -ControlleurServlet.java (Servlet) cfg(folder) -USERS(file) WebContent

我创建了一个动态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项目运行时,它正在工作:

Util类:

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)
INFO:10135毫秒后服务器启动
java.io.FileNotFoundException:。\cfg\users(系统找不到指定的路径)
位于java.io.FileInputStream.open0(本机方法)
位于java.io.FileInputStream.open(未知源代码)
位于java.io.FileInputStream。(未知源)
在metier.Util.getUsers(Util.java:130)
在web.ControleurServlet.doGet(ControleurServlet.java:37)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:624)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1136)
位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:316)
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
位于java.lang.Thread.run(未知源)
你能帮忙吗


考虑到servlet上下文没有指向保存文件的相同路径

因此,您可以检查上下文路径并将文件夹保留在适当的位置


它应该使用相对路径解决您的问题。从当前目录解析相对路径。当前目录是启动JVM的目录。在您的例子中,是启动Tomcat服务器的目录。使用绝对路径。