在类中使用枚举时发生Java.lang.NoClassDefFoundError
部署代码时,我收到一个奇怪的在类中使用枚举时发生Java.lang.NoClassDefFoundError,java,enums,jetty,Java,Enums,Jetty,部署代码时,我收到一个奇怪的java.lang.NoClassDefFoundError。编译它时没有错误,但是当我使用jetty部署它时,我得到一个错误 org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springframework.dao.annotation. PersistenceEx
java.lang.NoClassDefFoundError
。编译它时没有错误,但是当我使用jetty部署它时,我得到一个错误
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'org.springframework.dao.annotation.
PersistenceExceptionTranslationPostProcessor#0'
defined in class path resource [applicationContext-dao.xml]:
Initialization of bean failed;
nested exception is
org.springframework.beans.factory.BeanCreationException:
Error creating bean with name 'sessionFactory'
defined in class path resource [applicationContext-dao.xml]:
Invocation of init method failed;
nested exception is
java.lang.NoClassDefFoundError: com/core/model/Webhook$Event
这个班看起来像下面
public class Webhook extends BaseObject implements Serializable {
public enum Event {
ORDER_CREATE,
ORDER_UPDATE,
ORDER_DELETE,
TICKET_CREATE,
TICKET_UPDATE,
TICKET_DELETE,
CUSTOMER_CREATE,
CUSTOMER_UPDATE,
CUSTOMER_DELETE,
MENU_ITEM_UPDATE,
CHECK_OFFER
}
private Event triggerEvent;
public Event getTriggerEvent() {
return triggerEvent;
}
public void setTriggerEvent(Event triggerEvent) {
this.triggerEvent = triggerEvent;
}
public String getTriggerEventString() {
return triggerEvent.toString();
}
public void setTriggerEventString(String triggerEvent) {
this.triggerEvent = Event.valueOf(triggerEvent);
}
}
知道发生了什么事吗?它甚至没有显示错误所在
java.lang.NoClassDefFoundError-通常这表示我们以前试图从类路径加载类,但失败了
出于某种原因-现在我们正试图再次使用该类(因此
需要加载它,因为上次它失败了),但我们甚至不去
尝试加载它,因为我们之前加载失败(和
有理由怀疑我们会再次失败)。早期的失败
可以是ClassNotFoundException或ExceptionInInitializeError
(表示静态初始化块中出现故障)或
其他问题的数量。关键是,NoClassDefFoundError不是
这必然是一个类路径问题
当我在Weblogic中部署时,由于Weblogic缓存,我经常出现NoClassDefFoundError。是否可以尝试清理jetty的缓存或将事件枚举重命名为(例如)Event1,然后重试 它说它找不到
com/core/model/Webhook$Event
——你检查过你正在部署那个类文件吗?(WebHook$Event.class
)?IntellJ不会帮我做吗?事件位于Java Classic中我不知道IntelliJ在部署方面做了什么,但您应该检查Jetty在哪里获得类文件。尝试编译此文件(windows为ctrl+shift+f9,mac为cmd+shift+f9)您在谈论哪个文件?