Я новичок в весенних сапогах и слюнях.
Я написал (скопировал) некоторый код, чтобы выставить drools (таблицу решений) как веб-сервис.
Все работает нормально, но у меня есть проблема.
Я хочу внести изменения в электронную таблицу Excel во время работы приложения.
Когда я делаю изменения и собираю приложение, изменения вносятся, но я хочу, чтобы оно работало во время работы приложения.
Извините за грамматику и форматирование кода, это мой первый вопрос ..
Заранее спасибо
@RestController
public class FCCRObjectScoreController {
private final DroolsService service;
@Autowired
public FCCRObjectScoreController(DroolsService service) {
this.service = service;
}
@RequestMapping(value = "/fraud",
method = /*RequestMethod.GET*/ RequestMethod.POST, produces = "application/json")
public Client getQuestions(
@RequestParam(required = true) boolean resident,
@RequestParam(required = true) String name,
@RequestParam(required = true) int age,
@RequestParam(required = true) String type,
@RequestParam(required = true) String fraud,
@RequestParam(required = true) String emp) throws JsonParseException, JsonMappingException, IOException {
ObjectMapper mapper = new ObjectMapper();
Employer employer = mapper.readValue(emp, Employer.class);
Client client = new Client(name, resident, age, type, fraud,employer);
return service.getOutput(client);
}
}
@Service
public class DroolsService {
private KieSession kieSession = new DroolsConfiguration().getKieSession();;
public Client getOutput(Client cli){
kieSession.insert(cli);
kieSession.fireAllRules();
return cli;
}
}
public class DroolsConfiguration {
private static final String RULES_PATH = "/drools-demo-springboot/src/main/resources/drools/";
private KieServices kieServices;
private KieFileSystem getKieFileSystem() throws IOException{
KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
System.out.println("ovde");
List<String> rules=Arrays.asList("rules.xlsx");
System.out.println("ovde");
for(String rule:rules){
kieFileSystem.write(ResourceFactory.newClassPathResource(rule));
}
return kieFileSystem;
}
public KieContainer getKieContainer() throws IOException {
getKieRepository();
KieBuilder kb = kieServices.newKieBuilder(getKieFileSystem());
kb.buildAll();
KieModule kieModule = kb.getKieModule();
KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());
return kContainer;
}
private void getKieRepository() {
this.kieServices=KieServices.Factory.get();
final KieRepository kieRepository = kieServices.getRepository();
kieRepository.addKieModule(new KieModule() {
public ReleaseId getReleaseId() {
return kieRepository.getDefaultReleaseId();
}
});
}
public KieSession getKieSession(){
getKieRepository();
KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
kieFileSystem.write(ResourceFactory.newClassPathResource("drools/rules.xlsx"));
KieBuilder kb = kieServices.newKieBuilder(kieFileSystem);
kb.buildAll();
KieModule kieModule = kb.getKieModule();
KieContainer kContainer = kieServices.newKieContainer(kieModule.getReleaseId());
return kContainer.newKieSession();
}
}