2013-07-08 3 views
0

doo-entity 변환에 moo를 사용하고 싶습니다. 하지만 그것을 테스트 해 본다면이 예외가 발생합니다.간단한 테스트에서 NoClassDefFoundError

Exception in thread "main" java.lang.NoClassDefFoundError: org/mvel2/PropertyAccessException 
    at com.codiform.moo.configuration.Configuration.getTranslator(Configuration.java:62) 
    at com.codiform.moo.session.TranslationSession.getTranslator(TranslationSession.java:131) 
    at com.codiform.moo.session.TranslationSession.translate(TranslationSession.java:122) 
    at com.codiform.moo.session.TranslationSession.getTranslation(TranslationSession.java:64) 
    at com.codiform.moo.curry.Translate.from(Translate.java:63) 
    at Main.main(Main.java:15) 
Caused by: java.lang.ClassNotFoundException: org.mvel2.PropertyAccessException 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 
    ... 6 more 

내가 잘못했기 때문입니까? 여기 내 코드입니다 :

import com.codiform.moo.curry.Translate; 


public class Main { 

    /** 
    * @param args 
    */ 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
Guld guld1=new Guld("string from guld", "muck around", 5); 
GuldDTO guld1DTO; 
GuldDTO testclassload = new GuldDTO("ruks","halim",3); 

guld1DTO=Translate.to(GuldDTO.class).from(guld1); 
     //Beca beca1 = new Beca() 

System.out.println(guld1); 
System.out.println(guld1DTO); 
    } 

} 

public class Guld { 

    private String fielk1; 
    private String rupo; 
    private Integer higs; 
    public Guld(){ 

    } 
    public Guld(String fielk1, String rupo, Integer higs) { 

     this.fielk1 = fielk1; 
     this.rupo = rupo; 
     this.higs = higs; 
    } 
    public String getFielk1() { 
     return fielk1; 
    } 
    public void setFielk1(String fielk1) { 
     this.fielk1 = fielk1; 
    } 
    public String getRupo() { 
     return rupo; 
    } 
    public void setRupo(String rupo) { 
     this.rupo = rupo; 
    } 
    public Integer getHigs() { 
     return higs; 
    } 
    public void setHigs(Integer higs) { 
     this.higs = higs; 
    } 


} 

public class GuldDTO { 
    private String fielk1; 
    private String rupo; 
    private Integer higs; 
    public GuldDTO(){ 

    } 
    public GuldDTO(String fielk1, String rupo, Integer higs) { 

     this.fielk1 = fielk1; 
     this.rupo = rupo; 
     this.higs = higs; 
    } 
    public String getFielk1() { 
     return fielk1; 
    } 
    public void setFielk1(String fielk1) { 
     this.fielk1 = fielk1; 
    } 
    public String getRupo() { 
     return rupo; 
    } 
    public void setRupo(String rupo) { 
     this.rupo = rupo; 
    } 
    public Integer getHigs() { 
     return higs; 
    } 
    public void setHigs(Integer higs) { 
     this.higs = higs; 
    } 

} 

내가 알려 주시기 바랍니다 제공해야 다른 세부 사항이있는 경우. [분명히 나는 ​​텍스트 비율에 코드를 확인하는 stackoverflow 필터를 통과 할 수 없습니다.] [완료]

+0

코드는 [this jar] (http://mirrors.ibiblio.org/pub/mirrors/maven2/org/mvel/mvel2/2.0RC1)에 패키지화되어있는'org.mvel2.PropertyAccessException' 클래스에 대한 종속성이 있습니다. /mvel2-2.0RC1.jar) – kolossus

+0

빠른 링크를 주셔서 감사합니다 – notis

답변

2

ClassNotFoundException excption 의미 클래스가 없습니다이 클래스에 대한 라이브러리를 추가하고 다시 실행하십시오. 먼저 해당 응용 프로그램에이 클래스가 있는지 확인하거나 그렇지 않으면 mvel lib를 추가하십시오.

가 가능한 장소 : 당신은 그 클래스에 대한 종속성이있는 경우 http://grepcode.com/snapshot/repo1.maven.org/maven2/org.mvel/mvel2/2.1.4.Final/

+0

감사합니다. 저는 Maven을 사용하지 않고 어떻게 든 저는 Moo가 모든 종속성을 포함하고 있다고 예상했습니다. 플러스 나는 맥스에 대해 들어 본 적이 없기 때문에 그것이 Moo의 일부분이며 재사용 된 구성 요소가 아니라고 생각했습니다. – notis

0

당신은 java.lang.NoClassDefFoundError보고는 프로젝트의 당신의 의존성 목록에없는.

그럼, 당신이해야 할 것은 :

프로젝트에 org.mvel2.PropertyAccessException 클래스의 항아리를 추가 외부

항아리는 here 사용할 수 있습니다.

+0

감사합니다 ... 빠른 답변이 많이 있습니다. – notis

0

다른 사람이 이미 위에서 말한 것처럼 클래스 파일이 누락되어 있고 classpath에 필요한 jar 파일을 추가해야합니다. 클래스가로드되는 방법과 장소를 확인하려면 -verbose:classjava exe로 전달하면됩니다. 그러면 프로그램이 실행될 때로드되는 클래스의 추적이 표시됩니다. 이러한 문제를 디버깅하는 데 유용합니다.

+0

팁 주셔서 감사합니다. 위/아래로 투표 할 충분한 담당자가 없습니다. – notis

관련 문제