Red Hat Bugzilla – Bug 1309393
Global as Java 1.8 native classes unmarshallable in kie-server
Last modified: 2016-02-17 11:43:08 EST
Description of problem:
java.time.LocalDate is a native class in java 1.8 but causes marshaling errors on the kie-execution server using both jaxb and Xstream. Did not verify yet in json.
Version-Release number of selected component (if applicable):
Needs to be addressed in 7.0.0 and beyond as these are native java classes in Java 1.8
Setting up a kie-server with a container that contains a rule that references a global of type java.time.LocalDate.
Then using the following to build request to the kie-server:
KieServicesConfiguration config = KieServicesFactory.newRestConfiguration(REST_ENDPOINT, REST_USERNAME, REST_PASSWORD);
KieServicesClient client = KieServicesFactory.newKieServicesClient(config);
RuleServicesClient ruleClient = client.getServicesClient(RuleServicesClient.class);
List<Command<?>> commands = new ArrayList<Command<?>>();
LocalDate localdate = LocalDate.now();
CommandFactory.newBatchExecution(commands, , SESSION_NAME);
ServiceResponse<String> results = ruleClient.executeCommands("validation",batchExecutionCommand);
Steps to Reproduce:
1. Set Up remote kie-server with rules with a global of type java.time.LocalDate and uses global
2. Send request to kie server pragmatically with code above.
Server registers the following error using XSTREAM marshalling:
[org.kie.server.services.impl.KieContainerCommandServiceImpl] (http-localhost.localdomain/127.0.0.1:8080-4) Error calling container 'validation': java.lang.RuntimeException: Illegal class for global. Expected [java.time.LocalDate], found [java.time.Ser].
Client registers the following error using JAXB marshalling:
javax.xml.bind.JAXBException: class java.time.LocalDate nor any of its super class is known to this context.
Rules are executes and response of Success is returned.
This was discussed on sme list and conclusion was to stick to java 6 classes for versions 6.x but needs to be addressed in 7.0