]
Tri Doan Quang commented on DROOLS-2840:
----------------------------------------
Thanks [~cristiano.nicolai] [~swiderski.maciej]
I found the issue. It comes from the mismatch version of Jackson I am using.
I must downgrade to version 2.8.9 that Drools 7.9.0.Final is using to make it works.
Hope we already had plan to make it is compatible with new version of Jackson.
[~swiderski.maciej] [~cristiano.nicolai] Thanks a lot and you can close this ticket.
Java Controller Client Websocket API - Unmarshal result/input
incorrect
-----------------------------------------------------------------------
Key: DROOLS-2840
URL:
https://issues.jboss.org/browse/DROOLS-2840
Project: Drools
Issue Type: Bug
Components: kie server
Affects Versions: 7.9.0.Final
Reporter: Tri Doan Quang
Assignee: Cristiano Nicolai
I deployed Kie workbench & Kie server at version 7.9.0.Final
and I am going to set up client by using websocket API as provided here:
https://docs.jboss.org/drools/release/7.9.0.Final/drools-docs/html_single...
{code:java}
KieServerControllerClient client =
KieServerControllerClientFactory.newWebSocketClient(URL_WS,
USER,
PASSWORD, new TestEventHandler());
final ServerTemplateList serverTemplateList = client.listServerTemplates();
System.out.println(String.format("Found %s server template(s) at controller
url: %s",
serverTemplateList.getServerTemplates().length,
URL));
{code}
However, I got NPE since `serverTemplateList` is NULL.
I dig to the code and observed:
1. Server responses in JSON format:
{code:java}
'{
"type" : "SUCCESS",
"msg" : "",
"result" : {
"server-template-list" : {
"server-template" : [ {
"server-id" : "kie-server-v1",
"server-name" : "kie-server-v1",
"container-specs" : [ ],
"server-config" : { },
"server-instances" : [ {
"server-instance-id" : "kie-server-v1@192.168.1.6:8180",
"server-name" : "kie-server-v1@192.168.1.6:8180",
"server-template-id" : "kie-server-v1",
"server-url" :
"http://192.168.1.6:8180/kie-server/services/rest/server"
} ],
"capabilities" : [ "RULE", "PROCESS",
"PLANNING" ]
} ]
}
}
}'
{code}
2. But the decoder tries to unmarshall to the target object which is not defined well in
JSON. It's defined in JAXB
org.kie.server.controller.api.model.KieServerControllerServiceResponse
{code:java}
@XmlAttribute
private ResponseType type;
@XmlAttribute
private String msg;
@XmlElements({
//Kie Server Controller model
@XmlElement(name = "server-template-list", type =
ServerTemplateList.class),
@XmlElement(name = "server-template-details", type =
ServerTemplate.class),
@XmlElement(name = "server-template-key-list", type =
ServerTemplateKeyList.class),
@XmlElement(name = "server-template-key", type =
ServerTemplateKey.class),
@XmlElement(name = "container-spec-list", type =
ContainerSpecList.class),
@XmlElement(name = "container-spec-details", type =
ContainerSpec.class),
@XmlElement(name = "server-instance-key-list", type =
ServerInstanceKeyList.class),
@XmlElement(name = "server-instance-key", type =
ServerInstanceKey.class),
@XmlElement(name = "container-details-list", type =
ContainerList.class)
})
private T result;
{code}
Similar issues when I tried to register Event notification from Websocket (given in above
link). All values are null.
I am not sure I am missing some configuration.
Any one help me please? Many Thanks.