Getting SocketTimeoutException while calling KIE using REST call

57 views
Skip to first unread message

Alok Singh

unread,
Nov 2, 2016, 3:19:45 AM11/2/16
to Drools Usage
Hi,

I am using KIE 6.4 & created a simple rule there. want to call it as REST call. While calling I m getting below error.


org.kie.remote.common.rest.KieRemoteHttpRequestException: Error occurred when trying to retrieve response code
at org.kie.remote.common.rest.KieRemoteHttpRequest.responseCode(KieRemoteHttpRequest.java:1331)
at org.kie.remote.common.rest.KieRemoteHttpRequest.post(KieRemoteHttpRequest.java:719)
at org.kie.server.client.impl.AbstractKieServicesClientImpl.makeHttpPostRequestAndCreateServiceResponse(AbstractKieServicesClientImpl.java:215)
at org.kie.server.client.impl.AbstractKieServicesClientImpl.makeHttpPostRequestAndCreateServiceResponse(AbstractKieServicesClientImpl.java:205)
at org.kie.server.client.impl.RuleServicesClientImpl.executeCommandsWithResults(RuleServicesClientImpl.java:70)
at test.WebServiceTest.executeRule(WebServiceTest.java:122)
at test.WebServiceTest.main(WebServiceTest.java:74)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:170)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.io.BufferedInputStream.fill(BufferedInputStream.java:246)
at java.io.BufferedInputStream.read1(BufferedInputStream.java:286)
at java.io.BufferedInputStream.read(BufferedInputStream.java:345)
at sun.net.www.http.HttpClient.parseHTTPHeader(HttpClient.java:704)
at sun.net.www.http.HttpClient.parseHTTP(HttpClient.java:647)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1536)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:480)
at org.kie.remote.common.rest.KieRemoteHttpRequest.responseCode(KieRemoteHttpRequest.java:1329)
... 6 more




My code is look like this only


                                KieServicesConfiguration config = KieServicesFactory.newRestConfiguration(kieURL, kieServerUserName, kieServerUserPassword);
config.setMarshallingFormat(MarshallingFormat.XSTREAM); 
config.setTimeout(30000L);


KieServicesClient client = KieServicesFactory.newKieServicesClient(config);
RuleServicesClient rules = client.getServicesClient(RuleServicesClient.class);

KieCommands cmdFactory = KieServices.Factory.get().getCommands();

List<Command<?>> commands = new LinkedList<Command<?>>();
GetObjectsCommand getObjectsCommand = new GetObjectsCommand();
getObjectsCommand.setOutIdentifier("out");

commands.add(cmdFactory.newInsert(object, "object"));
commands.add(getObjectsCommand);

commands.add(cmdFactory.newFireAllRules());

ServiceResponse<org.kie.api.runtime.ExecutionResults> response = rules.executeCommandsWithResults("Test",cmdFactory.newBatchExecution(commands));

System.out.println(response.getMsg());
ExecutionResults result = response.getResult();
System.out.println(result.getFactHandle("out"));

Need urgent help to solve SocketTimeoutException. Increasing config.setTimeout(30000L) is not helping.
Reply all
Reply to author
Forward
0 new messages