2014-12-03 564 views
2

我在部署我的代碼時出現了一個奇怪的java.lang.NoClassDefFoundError。沒有,當我編譯它,但是當我使用碼頭部署它的錯誤,我得到一個錯誤說在類中使用枚舉時Java.lang.NoClassDefFoundError

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); 
    }  
} 

任何想法發生了什麼?它甚至沒有表現出什麼樣的錯誤是在

+1

它說它無法找到'com/core/model/Webhook $ Event'-你檢查過你正在部署那個類文件嗎? ('$網絡掛接Event.class')? – 2014-12-03 18:51:10

+0

不會IntellJ爲我做?事件在Java類中 – BrownTownCoder 2014-12-03 18:53:19

+0

我不知道IntelliJ在部署方面做了什麼,但是你應該檢查Jetty在哪裏獲取類文件。 – 2014-12-03 18:54:29

回答

1

java.lang.NoClassDefFoundError - 通常這表明我們以前試圖從classpath加載類,但因故未能 - 現在我們試圖再次使用該類(因此 需要加載它,因爲它上次失敗),但是我們甚至不會去 嘗試加載它,因爲我們先前加載它失敗(並且 合理懷疑我們會再次失敗)。較早的失敗 可能是一個ClassNotFoundException或一個ExceptionInInitializerError (表示靜態初始化塊失敗)或任何其他問題。重點是,NoClassDefFoundError不是 必然是類路徑問題。

當我在Weblogic中部署時,由於Weblogic緩存,我經常會遇到NoClassDefFoundError。可以嘗試清理jetty的緩存或將Event enum重命名爲Event1,然後再試一次?

+0

重命名爲我工作。奇怪的 – forresthopkinsa 2017-08-08 21:35:54