2014-12-03 5 views
2

내 코드를 배포하는 동안 이상한 java.lang.NoClassDefFoundError이 발생합니다. 오류 나는 그것을 컴파일,하지만 난 부두를 사용하여 배포하고 때, 나는클래스에서 enum을 사용하는 동안 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'를 찾을 수 없다고 말했습니까? 그 클래스 파일을 배포하고 있음을 확인 했습니까? ('WebHook $ Event.class')? –

+0

IntellJ가 나를 대신 할 수 없습니까? 이벤트가 Java 클래스 내부에 있습니다. – BrownTownCoder

+0

IntelliJ가 배포 측면에서 어떤 역할을하는지 알지 못하지만 Jetty가 클래스 파일을 가져 오는 곳을 확인해야합니다. –

답변

1

java.lang.NoClassDefFoundError가 -. 보통이 우리가 이전에 클래스 패스로부터 클래스를로드하려고 시도하지만 어떤 이유로 을 실패했음을 나타냅니다 - 이제 클래스를 다시 사용하려고합니다. 따라서 마지막으로 실패 했으므로 로드해야합니다.하지만로드하기 전에 시도하지 않기 위해 으로 이동하지 않았습니다. 이전에로드하지 못했습니다 ( ). 우리가 다시 실패 할 것이라고 의심). 의 이전 오류는 ClassNotFoundException 또는 ExceptionInInitializerError (정적 초기화 블록의 실패를 나타냄)이거나 다른 문제가있는 일 수 있습니다. 요점은 NoClassDefFoundError가 반드시 클래스 경로 문제 인 이 아니란 것입니다.

Weblogic에서 배포 할 때 Weblogic 캐시로 인해 NoClassDefFoundError가 발생하는 경우가 많았습니다. jetty의 캐시를 정리하거나 Event enum의 이름을 Event1과 같은 이름으로 바꾼 다음 다시 시도 할 수 있습니까?

+0

이름 바꾸기가 나를 위해 일했습니다. 기묘한 – forresthopkinsa

관련 문제