2014-01-16 2 views
0

Я использую отражение для вызова конструктора класса Child, для которого требуется пакет: org.apache.commons.lang3.ArrayUtils Я добавил его к пути к классу и использовал его еще где просто отлично, но отражение, похоже, не видит моего пути к классу.Класс отражения J2EE

Ошибка: java.lang.NoClassDefFoundError: орг/Apache// lang3 Commons/ArrayUtils

Я искал и видел много писать о загрузчике класса, но я до сих пор не понимаю. Может ли кто-нибудь объяснить проблему и как ее решить как можно яснее?

//main class: 
try { 
    Class<?> claz = Class.forName(claz_str); 
    Parent p = (Parent) claz.getDeclaredConstructor(String.class, String[].class, String[].class).newInstance(elmName, nodes_arr, params_arr); 
    } catch (Exception e) { 
    throw new Exception(e.getCause()); 
} 

// Child.class 
import org.apache.commons.lang3.ArrayUtils; 
public class Child extends Parent{ 
    public Child(){ 
     if(!ArrayUtils.contains(NUM_OF_PARAMS, 2)){ // <<====== run time error 
     System.out.println("stuff") 
     } 
    } 
} 

ответ

0

Ваш код выглядит нормально. Предоставляете ли вы полное квалифицированное имя своего класса как claz_str. Это должно быть

claz_str = "com.package.Class"; 

Надежда решить вашу проблему.

Смежные вопросы