Java 为什么我的Tomcat服务器会断断续续地抛出404';编译JSP';s
我需要帮助弄清楚为什么我的两个web应用程序在尝试启动JSP时间歇性地抛出404错误。其中一个直接访问JSP,另一个有一个转发到JSP的servlet。页面大部分时间都正常工作,但偶尔会抛出404。如果用户刷新浏览器1-3次,页面将重新开始工作,无需进行任何更改 以下是在web浏览器(Chrome)中看到的错误示例: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文件和扩展目录没有更改。日志中始终存在三
类型:状态报告
消息:/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仍在继续
虽然这个问题发生在我的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的文件,而无需授权管理员访问。