Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.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 Servlet可以';找不到指定的文件_Java_Jsp_Servlets - Fatal编程技术网

Java Servlet可以';找不到指定的文件

Java Servlet可以';找不到指定的文件,java,jsp,servlets,Java,Jsp,Servlets,请帮帮我。我不熟悉java,尤其是JavaWeb(JSP) 因此,在我尝试登录时,servlet类将首先调用配置log4j配置文件的配置类 这是我的项目树: 这是我的代码: 登录Servlet protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException{ System.out.println("B

请帮帮我。我不熟悉java,尤其是JavaWeb(JSP)

因此,在我尝试登录时,servlet类将首先调用配置log4j配置文件的配置类

这是我的项目树:

这是我的代码:

  • 登录Servlet

    protected void doPost(HttpServletRequest request, HttpServletResponse response)  
        throws ServletException, IOException{  
    
        System.out.println("Before Starting...");
        MainConfiguration.loadConfiguration();
    
        response.setContentType("text/html");
        RequestDispatcher rd=request.getRequestDispatcher("home.jsp");  
        rd.forward(request, response);
    }
    
  • 主配置

    public static void loadConfiguration()
    {
        // To configure place of logger settings file
        PropertyConfigurator.configure("configuration/logger_dev.conf");
    }
    
  • 因此,当我试图运行项目并尝试登录时,它会抛出一个错误

    Before Starting...
    log4j:ERROR Could not read configuration file [configuration/logger_dev.conf].
    java.io.FileNotFoundException: configuration\logger_dev.conf (The system cannot find the file specified)
        at java.io.FileInputStream.open0(Native Method)
        at java.io.FileInputStream.open(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at java.io.FileInputStream.<init>(Unknown Source)
        at org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
        at org.apache.log4j.PropertyConfigurator.configure(PropertyConfigurator.java:315)
        at com.utility.MainConfiguration.loadConfiguration(MainConfiguration.java:47)
        at com.controller.LoginServlet.doPost(LoginServlet.java:20)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
        at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
        at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
        at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
    log4j:ERROR Ignoring configuration file [configuration/logger_dev.conf].
    
    开始之前。。。
    log4j:错误无法读取配置文件[configuration/logger_dev.conf]。
    java.io.FileNotFoundException:configuration\logger\u dev.conf(系统找不到指定的文件)
    位于java.io.FileInputStream.open0(本机方法)
    位于java.io.FileInputStream.open(未知源代码)
    位于java.io.FileInputStream。(未知源)
    位于java.io.FileInputStream。(未知源)
    位于org.apache.log4j.PropertyConfigurator.doConfigure(PropertyConfigurator.java:297)
    在org.apache.log4j.PropertyConfigurator.configure上(PropertyConfigurator.java:315)
    位于com.utility.MainConfiguration.loadConfiguration(MainConfiguration.java:47)
    位于com.controller.LoginServlet.doPost(LoginServlet.java:20)
    位于javax.servlet.http.HttpServlet.service(HttpServlet.java:647)
    位于javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
    位于org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
    位于org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    位于org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
    位于org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
    位于org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
    位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
    位于org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
    位于org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
    位于org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    位于org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
    位于org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
    位于org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
    位于org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
    位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
    位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
    位于java.lang.Thread.run(未知源)
    log4j:忽略配置文件[configuration/logger_dev.conf]时出错。
    
    但是,当我尝试使用JavaMain调用我的配置类时,它工作得很好


    请建议如何让它在servlet上工作。谢谢。

    可以从中读取配置文件等资源

  • 文件系统。不建议这样做,因为该文件通常不属于已部署的WAR的一部分,因此必须单独处理(如果是,您不知道部署后它在文件系统中的位置)
  • 类路径。确保生成过程将文件复制到部署的类路径中(与
    .class
    文件结束的目录相同)。然后可以通过
    java.lang.Class.getResource
    java.lang.Class.getResourceAsStream
    访问该文件
  • WEB内容,例如位于
    WEB-INF
    文件夹中的某个位置,以避免将文件传递给客户端。然后可以通过
    javax.servlet.ServletContext.getResource
    javax.servlet.ServletContext.getResourceAsStream
    访问它

  • 您的文件正试图从WebContent文件夹加载,probably@cricket_007我已尝试将我的配置文件夹复制到WebContent文件夹中,但仍然无法工作。您需要将该文件放置在类路径上。请尝试将其放置在类路径上的文件夹中,如源文件夹,单击项目属性并查看类路径中的文件夹,然后选择一个文件夹来放置配置。除了src文件夹永远不在构建的Eclipse项目(尤其是web项目)的类路径上之外,还有一个问题,图像显示该文件位于
    configuration/db/logger_dev.conf
    ,而不是
    configuration/logger_dev.conf