在这个文件 localhost_access_log.2014-08-30.txt 上得到拒绝访问的 apache tomcat 错误?
Posted
技术标签:
【中文标题】在这个文件 localhost_access_log.2014-08-30.txt 上得到拒绝访问的 apache tomcat 错误?【英文标题】:Got apache tomcat error that access denied on this file localhost_access_log.2014-08-30.txt? 【发布时间】:2014-10-24 03:00:49 【问题描述】:我在 Windows 7 操作系统上安装了 Apache tomcate。我刚刚安装了 apache 并使其在 eclipse 中可用。当我在服务器上运行任何简单的应用程序时,它会说 404: page not found 并且在控制台中它会打印这样的错误消息。
SEVERE: Failed to open access log file [C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2014-08-30.txt]
java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\logs\localhost_access_log.2014-08-30.txt (Access is denied)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(Unknown Source)
at org.apache.catalina.valves.AccessLogValve.open(AccessLogValve.java:1117)
at org.apache.catalina.valves.AccessLogValve.startInternal(AccessLogValve.java:1224)
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:1137)
at org.apache.catalina.core.StandardHost.startInternal(StandardHost.java:800)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1559)
at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1549)
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
我不明白这是怎么回事???请帮帮我。
【问题讨论】:
您好像从非特权帐户启动了tomcat,它无法写入日志目录。这不是编程问题......因此它是题外话。 但我安装在我的个人电脑中,并安装为管理选项。仍然拒绝访问。有什么办法解决??? 您可能曾经从特权帐户启动过 Tomcat,它创建了一个日志文件,其默认的非特权帐户无法再修改。服务器故障社区可能会提供更多信息。 【参考方案1】:您当前的用户似乎没有对 tomcat 文件夹的权限。
我也遇到了同样的问题,并通过在 tomcat 文件夹上授予登录用户权限来解决它。
对于您的情况:
转到 >>“C:\Program Files\Apache Software Foundation\Tomcat 7.0”文件夹 右键单击>>属性>>安全选项卡
为当前登录的用户提供所需的权限。
【讨论】:
【参考方案2】:Open Tomcat C:\Program Files\Apache Software Foundation <br>(Right Click on Tomcat 8.5 ( as per Your Version)<br>
→Properties <br>
→Select Security Tab <br>
→Edit <br> →Select Your System <br> →Check or Allow all the Boxes <br>
→Click on Apply <br>
→Restart Program
【讨论】:
【参考方案3】:或者,您可以决定指示嵌入式 Tomcat 实例将其日志文件保存在不同的位置,并且位于 Windows 的本机“程序文件”目录之外。特别是对于最新的 Windows 版本,在程序文件目录中写入或保留任何内容可变的文件(即在运行时创建或写入的文件)不是一个好习惯。
在 TOMCAT_HOME/conf/server.xml 中搜索“AccessLogValve”,并指定日志文件的替代目录,如下所示:
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="c:\work\tomcat\logs"
prefix="localhost_access_log." suffix=".log" pattern="common"/>
这里的关键属性是“目录”。
【讨论】:
以上是关于在这个文件 localhost_access_log.2014-08-30.txt 上得到拒绝访问的 apache tomcat 错误?的主要内容,如果未能解决你的问题,请参考以下文章
写入一个方法,输入一个文件名和一个字符串,统计这个字符串在这个文件中出现的次数。