java.io.FileNotFoundException:C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt(访问被拒绝) [英] java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt (Access is denied)

查看:4081
本文介绍了java.io.FileNotFoundException:C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt(访问被拒绝)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图通过在Tomcat上运行它来测试我的servlet。但是,我得到上面的错误(有时这个错误发生,但更早的servlet运行正常)。一些事实:


  1. 我已经深入了解了这个类似的问题,以及其中此处


  2. 当我尝试重新启动Tomcat(从Eclipse的Servers选项卡中)时,我从控制台得到一些错误日志:




    1. 严重:无法打开访问日志文件[〜\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt],在最后日志输出,有INFO:SessionListener:sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3') - 查看更多信息在底部这篇文章


      1. 我看过我的日志文件在C:\Program Files\ Apache Software Foundation\Tomcat 7.0\logs,并且没有与上述(2)中类似的内容的文件


      2. 我部署'我的应用程序通过Eclipse(即在开发过程中,依靠Eclipse启动Tomcat),只有通过将适当的java类文件复制到Tomcat的/ webapps / WEB-INF /类文件夹并重新启动Tomcat


      最重要的是
      5.键入 http:// localhost:8080 引导我进入Tomcat主页(所以我很确定服务器正在运行),而 http:// localhost:8080 / MyProjectName / MyServlet 导致显示此问题的错误称号。



      任何想法/帮助?
      非常感谢!



      在这里查看更多错误日志

       code>>!2012年7月12日6:18:18 PM org.apache.catalina.core.AprLifecycleListener init 
      INFO:基于APR的Apache Tomcat Native库,允许生产环境中的最佳性能不是在java.library.path上找到:C:\Program Files\Java\jdk1.7.0\jre\bin; C:\Windows\Sun\Java\bin; C:\Windows \system32; C:\Windows; C:/ Program Files / Java / jre7 / bin / client; C:/ Program Files / Java / jre7 / bin; C:/ Program Files / Java / jre7 / lib / i386; C:\Users\Kiptoo\introcs\java\bin; C:\Windows\system32; C:\Windows; C:\Windows\system32\wbem; C:\Program Files\MiKTeX 2.8\miktex\bin; C:\Windows\System32\WindowsPowerShell\v1.0; C:\Program Files\Matlab\R2010a\runtime\win32; C: \Program Files\Matlab\R2010a\bin; C:\Progr am Files\TortoiseSVN\bin; C:\Program Files\QuickTime\QTSystem; C:\Users\Kiptoo\introcs\bin; C:\Users\Kiptoo\introcs\ java\bin; C:\Python27; C:\Program Files\Eclipse ;;。
      2012年7月12日下午6:18:20 org.apache.coyote.AbstractProtocol init
      INFO:初始化ProtocolHandler [http-bio-8080]
      2012年7月12日6:18 :20 PM org.apache.coyote.AbstractProtocol init
      INFO:初始化ProtocolHandler [ajp-bio-8009]
      2012年7月12日下午6:18:20 org.apache.catalina.startup。 Catalina加载
      INFO:初始化处理在2050毫秒
      2012年7月12日下午6:18:20 org.apache.catalina.core.StandardService startInternal
      信息:启动服务Catalina
      2012年7月12日6:18:20 PM org.apache.catalina.core.StandardEngine startInternal
      信息:启动Servlet引擎:Apache Tomcat / 7.0.25
      2012年7月12日下午6:18:20 org.apache.catalina.valves.AccessLogValve打开
      SEVERE:无法打开访问日志文件[C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12 .txt]
      java.io.FileNotFoundException:C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\loca lhost_access_log.2012-07-12.txt(访问被拒绝)
      在java.io.FileOutputStream.open(本机方法)
      在java.io.FileOutputStream。< init>(FileOutputStream.java: 212)
      在org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:1115)
      在org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValve.java:1222)
      在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      在org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:185)
      在org .apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      在org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1144)
      在org.apache.catalina .core.StandardHost.startInternal(StandardHost.java:782)
      在org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
      在org.apache.catalina.core.ContainerBase $ StartChild.call(ContainerBase.java:1568)
      在org.apache.catali na.core.ContainerBase $ StartChild.call(ContainerBase.java:1558)
      在java.util.concurrent.FutureTask $ Sync.innerRun(FutureTask.java:334)
      在java.util.concurrent。 FutureTask.run(FutureTask.java:166)
      在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
      在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor。 java:603)
      在java.lang.Thread.run(Thread.java:722)

      2012年7月12日下午6:18:20 org.apache.catalina.startup.HostConfig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\AndroidTest
      2012年7月12日下午6:18:20 org.apache。 catalina.core.StandardContext postWorkDirectory
      警告:无法创建工作目录[C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest] for context [/ AndroidTest]
      2012年7月12日下午6:18:21 org.apache.catalina.util.SessionIdGenerator createSecureRandom
      INFO:使用[SHA1PRNG]创建用于生成会话ID的SecureRandom实例[175]毫秒。
      2012年7月12日下午6:18:21 org.apache.jasper.EmbeddedServletOptions< init>
      SEVERE:您指定的scratchDir:C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest不可用。
      2012年7月12日6:18:21 org.apache.catalina.startup.HostConfig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache Software Foundation\Tomcat 7.0\\ \\webapps\docs
      2012年7月12日下午6:18:21 org.apache.catalina.startup.HostConfig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache软件基金会\Tomcat 7.0\webapps\examples
      2012年7月12日下午6:18:21 org.apache.catalina.core.ApplicationContext日志
      INFO:ContextListener:contextInitialized()
      Jul 12,2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
      INFO:SessionListener:contextInitialized()
      2012年7月12日下午6:18:21 org.apache.catalina。 core.ApplicationContext log
      INFO:ContextListener:attributeAdded('org.apache.jasper.compiler.TldLocationsCache','org.apache.jasper.compiler.TldLocationsCache@ff8399')
      2012年7月12日6: 18:21 PM org.apache.catalina.startup.HostConf ig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\host-manager
      2012年7月12日下午6:18:22 .apache.catalina.startup.HostConfig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager
      2012年7月12日6: 18:22 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO:部署Web应用程序目录C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
      Jul 12,2012 6:18:22 PM org.apache.coyote.AbstractProtocol start
      INFO:启动ProtocolHandler [http-bio-8080]
      2012年7月12日6:18:22组织。 apache.coyote.AbstractProtocol start
      INFO:启动ProtocolHandler [ajp-bio-8009]
      2012年7月12日下午6:18:22 org.apache.catalina.startup.Catalina start
      信息:服务器启动在2225毫秒
      2012年7月12日6:19:22 PM org.apache.catalina.core.ApplicationContext log
      INFO:SessionListener:sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3')


      解决方案


      只有通过将适当的java类文件复制到Tomcat的/ webapps / WEB-INF中,当我有一个稳定版本的项目时才进行真正的部署/ classes文件夹并重新启动Tomcat


      停止在那里:你不应该把任何文件放到 webapps / INF ,并期待它有什么好处。将webapp正确的部署到webapps目录中,使用一个接受良好接受的包装,如WAR文件或分解的WAR结构。



      其次,问题很明显: code> java.io.FileNotFoundException:C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt(访问被拒绝)。您的Tomcat无法写入该文件。只是因为你是一个管理员并不意味着Tomcat可以写入该目录:Tomcat根本就不了解UAC,而您正在尝试写入 Program Files 通常需要一些丑陋的UI凭据输入黑客。



      所以,检查你的文件(和目录)权限。检查Tomcat进程的uid:确保它们都很好。最后,考虑使用 CATALINA_HOME CATALINA_BASE (阅读有关如何执行的文档)来修复所有权限问题。


      I'm trying to test my servlet by running it on Tomcat. However, I get the above error (sometimes this error occurs, but earlier the servlet was running fine). A few facts:

      1. I've looked thoroughly at the explanations given by this similar problem, as well as in here, and here

      2. When I attempt to restart Tomcat (from within Eclipse's "Servers" tab), I get some error log from the console:

      "SEVERE: Failed to open access log file [~\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt]" and at the very end of the log output, there's "INFO: SessionListener: sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3') -- see more info at the bottom of this text

      1. I've looked at my log files at " C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs" and there is not file with contents similar to the ones in item (2) above

      2. I 'deploy' my application through Eclipse (that is, during development, I depend on Eclipse to start Tomcat), only doing a real deployment when I have a stable version of my project by copying the appropriate java class files into Tomcat's /webapps/WEB-INF/classes folder and restarting Tomcat

      and most importantly, 5. Typing in "http://localhost:8080" leads me to the Tomcat homepage (so I'm pretty sure the server is running), whereas "http://localhost:8080/MyProjectName/MyServlet" in the browser leads to the error shown this question's title.

      Any ideas/help? Thank you very much!

      See more of the error logs here

      >!Jul 12, 2012 6:18:18 PM org.apache.catalina.core.AprLifecycleListener init
      INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files\Java\jdk1.7.0\jre\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre7/bin/client;C:/Program Files/Java/jre7/bin;C:/Program Files/Java/jre7/lib/i386;C:\Users\Kiptoo\introcs\java\bin;C:\Windows\system32;C:\Windows;C:\Windows\system32\wbem;C:\Program Files\MiKTeX 2.8\miktex\bin;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Program Files\Matlab\R2010a\runtime\win32;C:\Program Files\Matlab\R2010a\bin;C:\Program Files\TortoiseSVN\bin;C:\Program Files\QuickTime\QTSystem;C:\Users\Kiptoo\introcs\bin;C:\Users\Kiptoo\introcs\java\bin;C:\Python27;C:\Program Files\Eclipse;;.
      Jul 12, 2012 6:18:20 PM org.apache.coyote.AbstractProtocol init
      INFO: Initializing ProtocolHandler ["http-bio-8080"]
      Jul 12, 2012 6:18:20 PM org.apache.coyote.AbstractProtocol init
      INFO: Initializing ProtocolHandler ["ajp-bio-8009"]
      Jul 12, 2012 6:18:20 PM org.apache.catalina.startup.Catalina load
      INFO: Initialization processed in 2050 ms
      Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardService startInternal
      INFO: Starting service Catalina
      Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardEngine startInternal
      INFO: Starting Servlet Engine: Apache Tomcat/7.0.25
      Jul 12, 2012 6:18:20 PM org.apache.catalina.valves.AccessLogValve open
      SEVERE: Failed to open access log file [C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt]
      java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt (Access is denied)
          at java.io.FileOutputStream.open(Native Method)
          at java.io.FileOutputStream.<init>(FileOutputStream.java:212)
          at org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:1115)
          at org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValve.java:1222)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.StandardPipeline.startInternal(StandardPipeline.java:185)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase.startInternal(ContainerBase.java:1144)
          at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:782)
          at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1568)
          at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1558)
          at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
          at java.util.concurrent.FutureTask.run(FutureTask.java:166)
          at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
          at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
          at java.lang.Thread.run(Thread.java:722)
      
      Jul 12, 2012 6:18:20 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\AndroidTest
      Jul 12, 2012 6:18:20 PM org.apache.catalina.core.StandardContext postWorkDirectory
      WARNING: Failed to create work directory [C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest] for context [/AndroidTest]
      Jul 12, 2012 6:18:21 PM org.apache.catalina.util.SessionIdGenerator createSecureRandom
      INFO: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [175] milliseconds.
      Jul 12, 2012 6:18:21 PM org.apache.jasper.EmbeddedServletOptions <init>
      SEVERE: The scratchDir you specified: C:\Program Files\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\AndroidTest is unusable.
      Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\docs
      Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\examples
      Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
      INFO: ContextListener: contextInitialized()
      Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
      INFO: SessionListener: contextInitialized()
      Jul 12, 2012 6:18:21 PM org.apache.catalina.core.ApplicationContext log
      INFO: ContextListener: attributeAdded('org.apache.jasper.compiler.TldLocationsCache', 'org.apache.jasper.compiler.TldLocationsCache@ff8399')
      Jul 12, 2012 6:18:21 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\host-manager
      Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\manager
      Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.HostConfig deployDirectory
      INFO: Deploying web application directory C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ROOT
      Jul 12, 2012 6:18:22 PM org.apache.coyote.AbstractProtocol start
      INFO: Starting ProtocolHandler ["http-bio-8080"]
      Jul 12, 2012 6:18:22 PM org.apache.coyote.AbstractProtocol start
      INFO: Starting ProtocolHandler ["ajp-bio-8009"]
      Jul 12, 2012 6:18:22 PM org.apache.catalina.startup.Catalina start
      INFO: Server startup in 2225 ms
      Jul 12, 2012 6:19:22 PM org.apache.catalina.core.ApplicationContext log
      INFO: SessionListener: sessionDestroyed('E9A6117FDF54752D80A1B9B72F2B83D3')
      

      解决方案

      only doing a real deployment when I have a stable version of my project by copying the appropriate java class files into Tomcat's /webapps/WEB-INF/classes folder and restarting Tomcat

      Stop right there: you should never put any files into webapps/WEB-INF and expect anything good to come of it. Deploy your webapp properly, using a well-accepted packaging such as a WAR file or an exploded-WAR structure into the webapps directory.

      Second, the problem is obvious: java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt (Access is denied). Your Tomcat can't write to that file. Just because you are an admin doesn't mean that Tomcat can write to that directory: Tomcat doesn't play well with UAC as far as I know and you are trying to write to Program Files which generally requires some ugly UI credentials-entry hack.

      So, check your file (and directory) permissions. Check the uid of the Tomcat process: make sure they are all good. Finally, consider using CATALINA_HOME and CATALINA_BASE (read the documentation for how to do that) to fix all of your permissions issues.

      这篇关于java.io.FileNotFoundException:C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2012-07-12.txt(访问被拒绝)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆