我是一名 Java 开发人员,我们的 Web 应用程序一直在 AWS EC2 实例上的 AWS Beanstalk 上运行,该实例使用了 Java-8、Tomcat 8.5 和 64 位 Amazon Linux/3.0.1。最近,根据安全团队的建议,我们将 Amazon Linux 升级到版本 3.1.6,并启用了 OS 自动更新选项。将 Amazon Linux OS 升级到 3.1.6 后,tomcat 开始出现以下 404 错误:
描述 原始服务器未找到目标资源的当前表示或不愿意透露存在该表示。Apache Tomcat/8.5.40
操作系统升级后,重新启动tomcat服务器。
我们也没有在应用程序级别和配置级别进行任何其他更改。在应用程序日志中,我们在编码级别没有发现任何异常。但在操作系统升级后,应用程序日志中显示以下错误:
org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading 非法访问:此 Web 应用程序实例已停止。无法加载 [org.apache.xerces.parsers.SAXParser]。抛出以下堆栈跟踪以进行调试,并尝试终止导致非法访问的线程。java.lang.IllegalStateException:非法访问:此 Web 应用程序实例已停止。无法加载 [org.apache.xerces.parsers.SAXParser]。抛出以下堆栈跟踪以进行调试,并尝试终止导致非法访问的线程。在 org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading(WebappClassLoaderBase.java:1384) 在 org.apache.catalina.loader.WebappClassLoaderBase.checkStateForClassLoading(WebappClassLoaderBase.java:1372) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1224) 在 org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1185) 在 org.xml.sax.helpers.NewInstance.newInstance(NewInstance.java:82) 在 org.xml.sax.helpers.XMLReaderFactory.loadClass(XMLReaderFactory.java:228) 在org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:191) 在 com.amazonaws.services.s3.model.transform.XmlResponsesSaxParser.(XmlResponsesSaxParser.java:113) 在 com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:69) 在 com.amazonaws.services.s3.model.transform.Unmarshallers$ListObjectsUnmarshaller.unmarshall(Unmarshallers.java:59) 在 com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:62) 在com.amazonaws.services.s3.internal.S3XmlResponseHandler.handle(S3XmlResponseHandler.java:31) at com.amazonaws.http.response.AwsResponseHandlerAdapter.handle(AwsResponseHandlerAdapter.java:70) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleResponse(AmazonHttpClient.java:1553) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1271) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1055) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:743) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:717) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:699) at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:667) at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:649) at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:513) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4247) at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4194) 在 com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:4188) 在 com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:823) 在 com.amazonaws.services.s3.AmazonS3Client.listObjects(AmazonS3Client.java:792) 在 com.trivin.ltr.ArchiveImportThread.listKeysInBucket(ArchiveImportThread.java:717) 在 com.trivin.ltr.ArchiveImportThread.run(ArchiveImportThread.java:850) 在 java.util.TimerThread.mainLoop(Timer.java:555) 在 java.util.TimerThread.run(Timer.java:505)
这是我工作中遇到的阻碍问题,因此非常感谢您的帮助。如果需要,我可以提供更多详细信息。
提前致谢。