Uploaded image for project: 'Drools'
  1. Drools
  2. DROOLS-5633

【looking for help】I want to load class from string instead of from source, but it always failed

XMLWordPrintable

    • Icon: Feature Request Feature Request
    • Resolution: Not a Bug
    • Icon: Major Major
    • None
    • None
    • None
    • None
    • 2020 Week 37-39 (from Sep 7)
    • NEW
    • NEW

      I want to dynamically load rules(drl files) and java classes. And now I can load drl by the below way. But I dont know how to dynamically load java classes by String type.

      For example: I have a drl which is  including class Person, so the Person must be existed in my project. However my service is running, I can not restart the serbice, and I have Person class in my database as String type. How can I load the String Person to kiebase?

      please help me, thank you very much!

      public static void loadRulesFromStr(InternalKnowledgeBase kBase, List<String> drls) {
          KnowledgeBuilderConfiguration kbc = KnowledgeBuilderFactory.newKnowledgeBuilderConfiguration();
          KnowledgeBuilder kBuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(kbc);
          for (String drl : drls) {
              kBuilder.add(ResourceFactory.newByteArrayResource(drl.getBytes()), ResourceType.DRL);
          }
          if (kBuilder.hasErrors()) {
              System.out.println(kBuilder.getErrors().toString());
          }
          kBase.addPackages(kBuilder.getKnowledgePackages());
      }
      

              mfusco@redhat.com Mario Fusco
              zhang-shine SHUAI ZHANG (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

                Created:
                Updated:
                Resolved: