java - 为什么我会收到 GAE 应用程序的 ClassNotFoundException
问题描述
我有一月份使用 Objectify 部署了一个 GAE 应用程序,从那以后就没有看过。当我今天部署应用程序并访问应用程序时,出现以下异常:com.google.apphosting.runtime.jetty9.JettyLogger warn: Could not instantiate listener dk.louise.dao.InitializerContextListener (JettyLogger.java:29) java .lang.ClassNotFoundException: dk.louise.dao.InitializerContextListener
其中 dk.louise.dao.InitializerContextListener 实现 javax.servlet.ServletContextListener,并在 web.xml 中定义为:
<?xml version="1.0" encoding="utf-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" id="WebApp_ID" version="3.0">
<listener>
<listener-class>
dk.louise.dao.InitializerContextListener
</listener-class>
</listener>
...
似乎许多其他人也有类似的问题,并通过使用最新的 GAE SDK 修复了它。我使用 1.9.73,但这并不能解决问题。
谢谢,路易丝
解决方案
ClassNotFoundException
并且NoClassDefFoundError
几乎总是表明您的类路径设置有问题。这不是 GAE 特有的问题,而是 Java 问题。
很难从提供的信息中调试这个 - 你是如何运行应用程序的?来自您的 IDE 的 Maven、gradle?查看您的类路径是如何设置的,并确保您希望出现的代码存在。
推荐阅读
- python - 如何稳定机器学习模型?
- apache-spark - 优化两个大型 pyspark 数据帧的连接
- php - 柬埔寨字母在交货单上的问题
- typescript - 如何检查 Google Play 订阅是否在客户端或服务器端处于活动状态
- algorithm - 如何在一维中找到一组唯一的最近点对?
- react-native - 当我在 aws-amplify-react-native 中从一个屏幕导航到另一个屏幕时获取“无当前用户”
- java - 在 onAdClosed() 方法中调用片段
- django - 错误:找不到满足 django>=2.0 要求的版本
- java - jhipster 基于角度的应用程序导致 PKIX 路径构建失败
- excel - 如何在 excel 中使用 2 个条件进行 Vlookup