Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.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

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 为什么我的Tomcat服务器会断断续续地抛出404';编译JSP';s_Java_Jsp_Tomcat_Http Status Code 404_Intermittent - Fatal编程技术网

Java 为什么我的Tomcat服务器会断断续续地抛出404';编译JSP';s

Java 为什么我的Tomcat服务器会断断续续地抛出404';编译JSP';s,java,jsp,tomcat,http-status-code-404,intermittent,Java,Jsp,Tomcat,Http Status Code 404,Intermittent,我需要帮助弄清楚为什么我的两个web应用程序在尝试启动JSP时间歇性地抛出404错误。其中一个直接访问JSP,另一个有一个转发到JSP的servlet。页面大部分时间都正常工作,但偶尔会抛出404。如果用户刷新浏览器1-3次,页面将重新开始工作,无需进行任何更改 以下是在web浏览器(Chrome)中看到的错误示例: 类型:状态报告 消息:/app\u root/my\u page.jsp 说明:请求的资源不可用 问题似乎与重新编译JSP页面有关。.war文件和扩展目录没有更改。日志中始终存在三

我需要帮助弄清楚为什么我的两个web应用程序在尝试启动JSP时间歇性地抛出404错误。其中一个直接访问JSP,另一个有一个转发到JSP的servlet。页面大部分时间都正常工作,但偶尔会抛出404。如果用户刷新浏览器1-3次,页面将重新开始工作,无需进行任何更改

以下是在web浏览器(Chrome)中看到的错误示例:

类型:状态报告
消息:/app\u root/my\u page.jsp
说明:请求的资源不可用

问题似乎与重新编译JSP页面有关。.war文件和扩展目录没有更改。日志中始终存在三个与每个404错误对应的错误:

警告:未能删除生成的类文件[D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app\u root\org\Apache\jsp\my\u 005fpage\u jsp.class]
2015年5月19日上午6:32:24 org.apache.jasper.compiler.compiler RemoveGenerated文件

警告:未能删除生成的Java文件[D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app\u root\org\Apache\jsp\my\u 005fpage\u jsp.Java]
2015年5月19日上午6:32:24 org.apache.jasper.compiler.compiler generateJava

警告:未能删除生成的Java文件[D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app\u root\org\Apache\jsp\my\u 005fpage\u jsp.Java]

我正在Tomcat7.0.53上运行Java1.7。Tomcat正在Windows 2008 R2服务器上运行

根据我从谷歌找到的信息,以下是我迄今为止所做的尝试。然而,404仍在继续

  • 禁用了对整个Tomcat目录的Windows索引
  • 在我的生产环境中关闭了开发模式
  • 将我的QA环境中的modificationTestInterval从默认值(4秒)增加到3600(1小时)[注意:当前设置为0以帮助我重现问题]
  • 将Tomcat工作目录上的所有者更改为与服务运行时的id相同的id
  • 我正在关闭工作目录上的防病毒功能,看看这是否有帮助


    虽然这个问题发生在我的prod和QA服务器上,但在我的本地Tomcat实例上并没有发生。事实上,即使在运行QA和Prod应用程序时,我也还没有从我的工作站看到这个问题。只有其他人看到了这个问题。

    在我们的实时服务器上部署了
    .war
    之后,我也遇到了同样的问题。以下是我解决问题所遵循的步骤:

    1)关闭tomcat服务器

    2)进入
    ->work->Catalina->localhost->->org->apache->jsp->

    3)手动删除
    .class
    .java

    4)从webapps文件夹中存在问题的网站中删除
    .war
    文件和部署的文件夹

    5)导出新的
    .war
    ,并将其放入webapps文件夹

    6)再次启动tomcat服务

    一旦服务器完成部署,它将自动在“work”目录中重新生成已删除的文件,并且网站应该可以再次使用,而不会出现间歇性的404错误


    我希望它也适用于您。

    检查此文件或文件夹的权限。通常,这个问题是由于无法访问文件夹造成的。

    Tomcat容器缓存由JSP解析器生成的.java和.class文件,web应用程序使用这些文件。有时这些文件会损坏或找不到。这可能发生在包含JSP修改的修补程序或升级之后


    解决方案是只需删除工作目录并重新启动tomcat

    您是否尝试在作为运行tomcat的用户登录时手动删除生成的类文件?我只是尝试手动执行此操作。只要我有管理权限,它就可以工作——或者用管理员权限打开cmd,或者在通过Windows资源管理器删除时回答弹出窗口。禁用病毒扫描没有帮助。进一步的测试表明,只有当servlet转发到JSP时,才会出现此问题。直接访问JSP很好。我刚刚更改了工作目录,使tomcat服务帐户具有完全的显式控制权。这允许我删除具有该id的文件,而无需授权管理员访问。