2015-12-09 3 views
1
import org.openl.rules.runtime.RulesEngineFactory; 
import org.w3c.dom.Document; 
import org.w3c.dom.Element; 
import org.w3c.dom.Node; 
import org.w3c.dom.NodeList; 
// Action rule 
public static String ActionRule(ClassRule classRule, String gender, 
     String marialStatus) throws IOException { 
    // TODO Auto-generated method stub 
    // define the interface 
    RulesEngineFactory<?> rulesFactory = new RulesEngineFactory<Object>("D:/GreetingCustomer.xlsx"); 
    Object rules = rulesFactory.newInstance(); 
    Class<?> clazz = rulesFactory.getInterfaceClass(); 

    // define params 
    String Gender = gender; 
    String MarialStatus = marialStatus; 

    // define info of rule method 

    int iNumOfParams = classRule.getListItem().size(); 
    // define param types 
    Class[] paramClases = new Class[iNumOfParams]; 
    paramClases[0] = String.class; 
    paramClases[1] = String.class; 

    // set param value 
    Object[] params = new Object[iNumOfParams]; 
    params[0] = Gender; 
    params[1] = MarialStatus; 

    String result = ""; 
    try { 
     Method method = clazz.getMethod(classRule.getRuleName(), 
       paramClases); 
     System.out.println("* Executing OpenL rules...\n"); 
     // invoke method 
     Object interestAmount = method.invoke(rules, params); 
     if (interestAmount != null) { 
      System.out.println("Siri Say: " + interestAmount); 
      result = interestAmount.toString(); 
     } else { 
      System.out.println("Wrong input value"); 
      result = "Wrong input value"; 
     } 
    } catch (NoSuchMethodException e) { 
    } catch (InvocationTargetException e) { 
    } catch (IllegalAccessException e) { 
    } 
    return result; 
} 

Когда я называю метод ActionRule Затмения дают мне сообщения об ошибках: ErrorОшибка java.lang.ClassNotFoundException

Я добавил org.openl.rules-5.16.2.jar в Libraies, но он по-прежнему не работают , Я не знаю почему? У кого есть решение для решения этой проблемы? Большое спасибо.

+0

Сообщение исключение трассировки стека, как код отформатирован текст, в вашем вопросе. И, пожалуйста, соблюдайте соглашения об именах Java и не игнорируйте исключения. –

+0

На вашем сервере нет класса org.openl.rules.runtime.RulesEngineFactory (в банке)? –

ответ

1

Это не затмение, в котором отсутствует библиотека, это кошка. Убедитесь, что ваше развертывание имеет org.openl.rules-5.16.2.jar, помещенный в WEB-INF/lib вашего webapp.

После перезагрузки или перераспределить кот приложение

+0

да! Я добавил org.openl.rules-5.16.2.jar в WEB-INF/lib, и он сработал. Большое спасибо – Nasper

+0

Мне было бы хорошо, если бы вы приняли ответ тогда :-) – Jan

+0

Да. Я принял ответ. Извините, что забыли это: D – Nasper

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