Слюни указанной кодировки не вступают в силу - PullRequest
0 голосов
/ 03 декабря 2018

В моем файле drl я использую немецкие символы, такие как Umlauts или ß.Таким образом, я устанавливаю кодировку UTF-8 с перегруженным конструктором при создании ресурса для файловой системы Kie.Однако после запуска правил на вставленные Fact Drools, похоже, не применяется указанная кодировка.Я вставляю факт, и если условие соответствует этому факту, он должен изменить атрибут Action1 (String) факта на «Rückfrage» и вернуть измененный факт.Однако, когда я смотрю на атрибут Action1 извлеченного компонента, я вижу «Rückfrage» вместо «Rückfrage».Я пробовал кодирование UTF-8 и ISO-8859-1.Есть идеи, что не так?

Слюни 7.13

KieSessionGenerator:

public KieSessionGenerator() {
    KieServices kieServices = KieServices.Factory.get();

    KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
    kieFileSystem.write(ResourceFactory.newClassPathResource(drlFile, "UTF-8"));

    KieBuilder kieBuilder = kieServices.newKieBuilder(kieFileSystem);
    kieBuilder.buildAll();
    KieModule kieModule = kieBuilder.getKieModule();

    KieContainer kieContainer = kieServices.newKieContainer(kieModule.getReleaseId());

    kieSession = kieContainer.newKieSession();
}

Фрагмент из ДХО:

rule "813"
when
    $bean : Bean(longDesc == "Infektion")
then
    $bean.setAction1("Rückfrage");
end

Вставка факта:

public Bean lookupBean(Bean bean) {
    kieSessionGenerator.getKieSession().insert(bean);
    kieSessionGenerator.getKieSession().fireAllRules();
    return bean;
}

1 Ответ

0 голосов
/ 10 декабря 2018

Определенно, это проблема кодирования, а не проблема с Drools.Я подозреваю, что drlFile не сохраняется в кодировке UTF-8 на диск.Какой редактор вы используете для редактирования drlFile?Найдите редактор, который показывает фактическую кодировку файла, или установите кодировку в редакторе на UTF-8 и перезапишите файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...