Unable to communicate through JMS

714 views
Skip to first unread message

Theodore Chaikalis

unread,
Jan 4, 2018, 4:13:53 AM1/4/18
to Drools Setup
Hello all,

I have installed this docker image 

and  Iam trying to run the following example to test the communication with the JMS API endpoint, taken from the "Mastering JBoss Drools" book


private static final String USER = "kieserver";
private static final String PASSWORD = "kieserver1!";

private static final String INITIAL_CONTEXT_FACTORY = new String("org.jboss.naming.remote.client.InitialContextFactory");
private static final String CONNECTION_FACTORY = new String("jms/RemoteConnectionFactory");
private static final String REQUEST_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.REQUEST");
private static final String RESPONSE_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.RESPONSE");

@Test
public void runSimpleRules() throws Exception {
Properties initialProps = new Properties();
initialProps.setProperty(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory");
initialProps.setProperty(InitialContext.PROVIDER_URL, "remote://localhost:8180");
initialProps.setProperty(InitialContext.SECURITY_PRINCIPAL, USER);
initialProps.setProperty(InitialContext.SECURITY_CREDENTIALS, PASSWORD);
for (Object keyObj : initialProps.keySet()) {
    String key = (String) keyObj;
    System.setProperty(key, (String) initialProps.get(key));
}
InitialContext context = new InitialContext(initialProps);
//Deploy a container in KIE Server
KieServicesConfiguration config = KieServicesFactory.newJMSConfiguration(
        context, USER, PASSWORD);

KieServicesClient client = KieServicesFactory.newKieServicesClient(config);

client.listContainers();
}


but the server refuses to accept the connection with the following error, what Iam i doing wrong?


Thank you!



"C:\Program Files\Java\jdk1.8.0_144\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.3\lib\idea_rt.jar=55823:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.3\bin" -Dfile.encoding=windows-1253 -classpath "C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.3\lib\idea_rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.3\plugins\junit\lib\junit-rt.jar;C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.3\plugins\junit\lib\junit5-rt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_144\jre\lib\rt.jar;C:\Users\tchaikalis\gitProjects\SSP_NEW\ssp.drools\ssp.drools.admin\target\test-classes;C:\Users\tchaikalis\gitProjects\SSP_NEW\ssp.drools\ssp.drools.admin\target\classes;C:\Users\tchaikalis\.m2\repository\com\google\guava\guava\23.5-jre\guava-23.5-jre.jar;C:\Users\tchaikalis\.m2\repository\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\tchaikalis\.m2\repository\org\checkerframework\checker-qual\2.0.0\checker-qual-2.0.0.jar;C:\Users\tchaikalis\.m2\repository\com\google\errorprone\error_prone_annotations\2.0.18\error_prone_annotations-2.0.18.jar;C:\Users\tchaikalis\.m2\repository\com\google\j2objc\j2objc-annotations\1.1\j2objc-annotations-1.1.jar;C:\Users\tchaikalis\.m2\repository\org\codehaus\mojo\animal-sniffer-annotations\1.14\animal-sniffer-annotations-1.14.jar;C:\Users\tchaikalis\.m2\repository\junit\junit\4.12\junit-4.12.jar;C:\Users\tchaikalis\.m2\repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Users\tchaikalis\.m2\repository\org\kie\kie-api\7.4.1.Final\kie-api-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\uberfire\uberfire-maven-support\1.4.0.Final\uberfire-maven-support-1.4.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\slf4j\slf4j-api\1.7.21\slf4j-api-1.7.21.jar;C:\Users\tchaikalis\.m2\repository\ch\qos\logback\logback-classic\1.1.2\logback-classic-1.1.2.jar;C:\Users\tchaikalis\.m2\repository\ch\qos\logback\logback-core\1.1.2\logback-core-1.1.2.jar;C:\Users\tchaikalis\.m2\repository\org\kie\server\kie-server-client\7.4.1.Final\kie-server-client-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\apache\commons\commons-lang3\3.4\commons-lang3-3.4.jar;C:\Users\tchaikalis\.m2\repository\org\kie\kie-internal\7.4.1.Final\kie-internal-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\optaplanner\optaplanner-core\7.4.1.Final\optaplanner-core-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\apache\commons\commons-math3\3.4.1\commons-math3-3.4.1.jar;C:\Users\tchaikalis\.m2\repository\org\reflections\reflections\0.9.11\reflections-0.9.11.jar;C:\Users\tchaikalis\.m2\repository\org\kie\kie-dmn-api\7.4.1.Final\kie-dmn-api-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\kie\kie-dmn-model\7.4.1.Final\kie-dmn-model-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\kie\server\kie-server-api\7.4.1.Final\kie-server-api-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\optaplanner\optaplanner-persistence-xstream\7.4.1.Final\optaplanner-persistence-xstream-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\optaplanner\optaplanner-persistence-common\7.4.1.Final\optaplanner-persistence-common-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\optaplanner\optaplanner-persistence-jaxb\7.4.1.Final\optaplanner-persistence-jaxb-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\spec\javax\xml\bind\jboss-jaxb-api_2.2_spec\1.0.4.Final\jboss-jaxb-api_2.2_spec-1.0.4.Final.jar;C:\Users\tchaikalis\.m2\repository\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\tchaikalis\.m2\repository\com\fasterxml\jackson\module\jackson-module-jaxb-annotations\2.6.2\jackson-module-jaxb-annotations-2.6.2.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\spec\javax\ws\rs\jboss-jaxrs-api_2.0_spec\1.0.0.Final\jboss-jaxrs-api_2.0_spec-1.0.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\kie\server\kie-server-common\7.4.1.Final\kie-server-common-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\codehaus\jackson\jackson-xc\1.9.13\jackson-xc-1.9.13.jar;C:\Users\tchaikalis\.m2\repository\org\codehaus\jackson\jackson-core-asl\1.9.13\jackson-core-asl-1.9.13.jar;C:\Users\tchaikalis\.m2\repository\org\codehaus\jackson\jackson-mapper-asl\1.9.13\jackson-mapper-asl-1.9.13.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\spec\javax\jms\jboss-jms-api_2.0_spec\1.0.1.Final\jboss-jms-api_2.0_spec-1.0.1.Final.jar;C:\Users\tchaikalis\.m2\repository\com\sun\xml\bind\jaxb-core\2.2.11\jaxb-core-2.2.11.jar;C:\Users\tchaikalis\.m2\repository\com\sun\xml\bind\jaxb-impl\2.2.11\jaxb-impl-2.2.11.jar;C:\Users\tchaikalis\.m2\repository\org\slf4j\jcl-over-slf4j\1.7.22\jcl-over-slf4j-1.7.22.jar;C:\Users\tchaikalis\.m2\repository\org\drools\drools-compiler\7.4.1.Final\drools-compiler-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\antlr\antlr-runtime\3.5.2\antlr-runtime-3.5.2.jar;C:\Users\tchaikalis\.m2\repository\org\eclipse\jdt\core\compiler\ecj\4.4.2\ecj-4.4.2.jar;C:\Users\tchaikalis\.m2\repository\org\mvel\mvel2\2.3.2.Final\mvel2-2.3.2.Final.jar;C:\Users\tchaikalis\.m2\repository\com\thoughtworks\xstream\xstream\1.4.10\xstream-1.4.10.jar;C:\Users\tchaikalis\.m2\repository\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Users\tchaikalis\.m2\repository\xpp3\xpp3_min\1.1.4c\xpp3_min-1.1.4c.jar;C:\Users\tchaikalis\.m2\repository\com\google\protobuf\protobuf-java\2.6.0\protobuf-java-2.6.0.jar;C:\Users\tchaikalis\.m2\repository\org\drools\drools-core\7.4.1.Final\drools-core-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\commons-codec\commons-codec\1.10\commons-codec-1.10.jar;C:\Users\tchaikalis\.m2\repository\org\drools\drools-decisiontables\7.4.1.Final\drools-decisiontables-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\drools\drools-templates\7.4.1.Final\drools-templates-7.4.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\apache\poi\poi-ooxml\3.15\poi-ooxml-3.15.jar;C:\Users\tchaikalis\.m2\repository\org\apache\poi\poi-ooxml-schemas\3.15\poi-ooxml-schemas-3.15.jar;C:\Users\tchaikalis\.m2\repository\org\apache\xmlbeans\xmlbeans\2.6.0\xmlbeans-2.6.0.jar;C:\Users\tchaikalis\.m2\repository\com\github\virtuald\curvesapi\1.04\curvesapi-1.04.jar;C:\Users\tchaikalis\.m2\repository\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;C:\Users\tchaikalis\.m2\repository\org\apache\poi\poi\3.15\poi-3.15.jar;C:\Users\tchaikalis\.m2\repository\org\apache\commons\commons-collections4\4.1\commons-collections4-4.1.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\jboss-remote-naming\2.0.4.Final\jboss-remote-naming-2.0.4.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\jboss-ejb-client\2.0.0.Final\jboss-ejb-client-2.0.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\marshalling\jboss-marshalling\1.4.3.Final\jboss-marshalling-1.4.3.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\marshalling\jboss-marshalling-river\1.4.3.Final\jboss-marshalling-river-1.4.3.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\xnio\xnio-api\3.2.0.Final\xnio-api-3.2.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\remoting\jboss-remoting\4.0.0.Final\jboss-remoting-4.0.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\sasl\jboss-sasl\1.0.4.Final\jboss-sasl-1.0.4.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\logging\jboss-logging\3.1.4.GA\jboss-logging-3.1.4.GA.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\xnio\xnio-nio\3.4.6.Final\xnio-nio-3.4.6.Final.jar;C:\Users\tchaikalis\.m2\repository\org\apache\httpcomponents\httpclient\4.5.3\httpclient-4.5.3.jar;C:\Users\tchaikalis\.m2\repository\org\apache\httpcomponents\httpcore\4.4.6\httpcore-4.4.6.jar;C:\Users\tchaikalis\.m2\repository\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar;C:\Users\tchaikalis\.m2\repository\com\fasterxml\jackson\core\jackson-core\2.5.0\jackson-core-2.5.0.jar;C:\Users\tchaikalis\.m2\repository\com\fasterxml\jackson\core\jackson-databind\2.5.0\jackson-databind-2.5.0.jar;C:\Users\tchaikalis\.m2\repository\com\fasterxml\jackson\core\jackson-annotations\2.5.0\jackson-annotations-2.5.0.jar;C:\Users\tchaikalis\.m2\repository\org\hibernate\javax\persistence\hibernate-jpa-2.1-api\1.0.0.Final\hibernate-jpa-2.1-api-1.0.0.Final.jar;C:\Users\tchaikalis\.m2\repository\org\hibernate\validator\hibernate-validator\6.0.2.Final\hibernate-validator-6.0.2.Final.jar;C:\Users\tchaikalis\.m2\repository\javax\validation\validation-api\2.0.0.Final\validation-api-2.0.0.Final.jar;C:\Users\tchaikalis\.m2\repository\com\fasterxml\classmate\1.3.1\classmate-1.3.1.jar;C:\Users\tchaikalis\.m2\repository\org\hibernate\hibernate-core\5.2.11.Final\hibernate-core-5.2.11.Final.jar;C:\Users\tchaikalis\.m2\repository\org\javassist\javassist\3.20.0-GA\javassist-3.20.0-GA.jar;C:\Users\tchaikalis\.m2\repository\antlr\antlr\2.7.7\antlr-2.7.7.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\spec\javax\transaction\jboss-transaction-api_1.2_spec\1.0.1.Final\jboss-transaction-api_1.2_spec-1.0.1.Final.jar;C:\Users\tchaikalis\.m2\repository\org\jboss\jandex\2.0.3.Final\jandex-2.0.3.Final.jar;C:\Users\tchaikalis\.m2\repository\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\tchaikalis\.m2\repository\org\hibernate\common\hibernate-commons-annotations\5.0.1.Final\hibernate-commons-annotations-5.0.1.Final.jar;C:\Users\tchaikalis\.m2\repository\commons-lang\commons-lang\2.6\commons-lang-2.6.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 com.intrasoft.ssp.drools.admin.DroolsClientJMSTest,runSimpleRules
10:52:50.533 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
10:52:50.576 [main] DEBUG o.j.n.r.client.InitialContextFactory - Looking for jboss-naming-client.properties using classloader sun.misc.Launcher$AppClassLoader@18b4aac2
10:52:50.578 [main] DEBUG o.j.n.r.client.InitialContextFactory - jboss.naming.client.endpoint.create.options. has the following options {}
10:52:50.581 [main] DEBUG o.j.n.r.client.InitialContextFactory - jboss.naming.client.remote.connectionprovider.create.options. has the following options {}
10:52:50.602 [main] INFO  org.xnio - XNIO version 3.2.0.Final
10:52:50.691 [main] INFO  org.xnio.nio - XNIO NIO Implementation Version 3.4.6.Final
10:52:50.991 [Remoting "config-based-naming-client-endpoint" I/O-1] DEBUG org.xnio.nio - Started channel thread 'Remoting "config-based-naming-client-endpoint" I/O-1', selector sun.nio.ch.WindowsSelectorImpl@512cece7
10:52:50.992 [Remoting "config-based-naming-client-endpoint" Accept] DEBUG org.xnio.nio - Started channel thread 'Remoting "config-based-naming-client-endpoint" Accept', selector sun.nio.ch.WindowsSelectorImpl@1a62b140
10:52:51.492 [main] INFO  org.jboss.remoting - JBoss Remoting version 4.0.0.Final
10:52:51.572 [main] DEBUG o.j.n.r.client.InitialContextFactory - jboss.naming.client.connect.options. has the following options {}
10:52:56.746 [main] DEBUG o.j.n.r.client.HaRemoteNamingStore - Failed to connect to server remote://localhost:8180
java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS
	at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:97) ~[jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:198) ~[jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.HaRemoteNamingStore.namingStore(HaRemoteNamingStore.java:149) ~[jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:130) ~[jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:272) ~[jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.RemoteContext.lookupInternal(RemoteContext.java:104) [jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:93) [jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:146) [jboss-remote-naming-2.0.4.Final.jar:2.0.4.Final]
	at javax.naming.InitialContext.lookup(InitialContext.java:417) [na:1.8.0_144]
	at org.kie.server.client.impl.KieServicesConfigurationImpl.setRemoteInitialContext(KieServicesConfigurationImpl.java:197) [kie-server-client-7.4.1.Final.jar:7.4.1.Final]
	at org.kie.server.client.impl.KieServicesConfigurationImpl.<init>(KieServicesConfigurationImpl.java:170) [kie-server-client-7.4.1.Final.jar:7.4.1.Final]
	at org.kie.server.client.KieServicesFactory.newJMSConfiguration(KieServicesFactory.java:92) [kie-server-client-7.4.1.Final.jar:7.4.1.Final]
	at com.intrasoft.ssp.drools.admin.DroolsClientJMSTest.runSimpleRules(DroolsClientJMSTest.java:72) [test-classes/:na]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) [junit-4.12.jar:4.12]
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47) [junit-4.12.jar:4.12]
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78) [junit-4.12.jar:4.12]
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268) [junit-4.12.jar:4.12]
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363) [junit-4.12.jar:4.12]
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137) [junit-4.12.jar:4.12]
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242) [junit-rt.jar:na]
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70) [junit-rt.jar:na]

org.kie.server.api.exception.KieServicesException: Unable to retrieve object for jms/RemoteConnectionFactory

	at org.kie.server.client.impl.KieServicesConfigurationImpl.setRemoteInitialContext(KieServicesConfigurationImpl.java:204)
	at org.kie.server.client.impl.KieServicesConfigurationImpl.<init>(KieServicesConfigurationImpl.java:170)
	at org.kie.server.client.KieServicesFactory.newJMSConfiguration(KieServicesFactory.java:92)
	at com.intrasoft.ssp.drools.admin.DroolsClientJMSTest.runSimpleRules(DroolsClientJMSTest.java:72)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
	at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
	at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
	at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
	at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: javax.naming.CommunicationException: Failed to connect to any server. Servers tried: [remote://localhost:8180 (Operation failed with status WAITING after 5000 MILLISECONDS)] [Root exception is java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS]
	at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:240)
	at org.jboss.naming.remote.client.HaRemoteNamingStore.namingStore(HaRemoteNamingStore.java:149)
	at org.jboss.naming.remote.client.HaRemoteNamingStore.namingOperation(HaRemoteNamingStore.java:130)
	at org.jboss.naming.remote.client.HaRemoteNamingStore.lookup(HaRemoteNamingStore.java:272)
	at org.jboss.naming.remote.client.RemoteContext.lookupInternal(RemoteContext.java:104)
	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:93)
	at org.jboss.naming.remote.client.RemoteContext.lookup(RemoteContext.java:146)
	at javax.naming.InitialContext.lookup(InitialContext.java:417)
	at org.kie.server.client.impl.KieServicesConfigurationImpl.setRemoteInitialContext(KieServicesConfigurationImpl.java:197)
	... 25 more
Caused by: java.net.ConnectException: Operation failed with status WAITING after 5000 MILLISECONDS
	at org.jboss.naming.remote.protocol.IoFutureHelper.get(IoFutureHelper.java:97)
	at org.jboss.naming.remote.client.HaRemoteNamingStore.failOverSequence(HaRemoteNamingStore.java:198)
	... 33 more


Process finished with exit code -1

Anna Baker

unread,
Jan 12, 2018, 6:54:02 PM1/12/18
to Drools Setup
Hi Theodore,

I saw your comment on my blog and was able to get this working ~ please see my post.

I will see if I can get a team mate to take a look at what I did to confirm the solution.  If you did get it working using a different approach, please share.

Thank you,

Anna

Theodore Chaikalis

unread,
Jan 15, 2018, 4:50:27 AM1/15/18
to Drools Setup
Thank you Anna for giving your time on this issue.

The truth is that I managed to make it work by using the following code, that is working fine.

But no I have a new problem with the response callback. 

In the code snippet you can also see an attempt to use Async Response Handler with no luck. The final assertion fails. So the serviceResponse.getResult(); is null. 


To be honest with all of you, Drools guys, the documentation about these topics if far from good...even adequate.

Thanks

Theodore


 
public class DroolsClientJMSTest {

   
private CountDownLatch lock = new CountDownLatch(1);

   
private static final String REMOTING_URL = "http-remoting://machine-ip:8180";

   
private static final String USER = "kieguest";
   
private static final String PASSWORD = "kieguest";


    private static final String INITIAL_CONTEXT_FACTORY = new String("org.jboss.naming.remote.client.InitialContextFactory");
   
private static final String CONNECTION_FACTORY = new String("jms/RemoteConnectionFactory");
   
private static final String REQUEST_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.REQUEST");
   
private static final String RESPONSE_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.RESPONSE");


   
private static final String SESSION_OBJECTS = "SessionObjects";

   
private KieServicesConfiguration conf;
   
private KieServicesClient kieServicesClient;

   
private Set<Class<?>> extraClassList = new HashSet<Class<?>>();

   
@Test
    public void testJms() throws Exception {

       
final Properties env = new Properties();
        env
.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
        env
.put(Context.PROVIDER_URL, REMOTING_URL);
        env
.put(Context.SECURITY_PRINCIPAL, USER);
        env
.put(Context.SECURITY_CREDENTIALS, PASSWORD);
       
InitialContext context = new InitialContext(env);
       
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(CONNECTION_FACTORY);

       
Queue requestQueue = (Queue) context.lookup(REQUEST_QUEUE_JNDI);
       
Queue responseQueue = (Queue) context.lookup(RESPONSE_QUEUE_JNDI);

       
conf = KieServicesFactory.newJMSConfiguration(connectionFactory, requestQueue, responseQueue, USER, PASSWORD);

        //If you use custom classes, such as Obj.class, add them to the configuration

        extraClassList.add(Message.class);
       
conf.addExtraClasses(extraClassList);

       
kieServicesClient = KieServicesFactory.newKieServicesClient(conf);

       
System.out.println("== Sending commands trough JMS to the server ==");
       
List<Command<?>> commands = new ArrayList<Command<?>>();
       
BatchExecutionCommandImpl executionCommand = new BatchExecutionCommandImpl(commands);
        executionCommand
.setLookup("defaultKieSession");

       
Message sbs = new Message("Hello You", Message.HELLO);
       
InsertObjectCommand insertObjectCommand = new InsertObjectCommand();
        insertObjectCommand
.setObject(sbs);

       
FireAllRulesCommand fireAllRulesCommand = new FireAllRulesCommand();

        commands
.add(insertObjectCommand);
        commands
.add(fireAllRulesCommand);
        executionCommand
.getCommands().add(new GetObjectsCommand(null, SESSION_OBJECTS));

       
RuleServicesClient ruleClient = kieServicesClient.getServicesClient(RuleServicesClient.class);


       
ResponseCallback callback = new CustomResponseCallback();


        ruleClient
.setResponseHandler(new AsyncResponseHandler(callback));

       
ServiceResponse<ExecutionResults> response1 = ruleClient.executeCommandsWithResults("ssp.drools.admin_1.0.0", executionCommand);

       
System.out.println("Rules execution command sent");

       
lock.await(8, TimeUnit.SECONDS);

       
ServiceResponsesList response = callback.get();
       
assertNotNull(response);
       
assertNotNull(response.getResponses());


       
ServiceResponse<? extends Object> serviceResponse = response.getResponses().get(0);
       
Object result = serviceResponse.getResult();
       
assertNotNull(result);
    }

Theodore Chaikalis

unread,
Jan 15, 2018, 4:53:03 AM1/15/18
to Drools Setup
sorry, posting the full code again:

public class DroolsClientJMSTest {

private CountDownLatch lock = new CountDownLatch(1);

    private static final String REMOTING_URL = "http-remoting://an-ip:8180";

private static final String USER = "kieguest";
private static final String PASSWORD = "kieguest";


private static final String INITIAL_CONTEXT_FACTORY = new String("org.jboss.naming.remote.client.InitialContextFactory");
private static final String CONNECTION_FACTORY = new String("jms/RemoteConnectionFactory");
private static final String REQUEST_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.REQUEST");
private static final String RESPONSE_QUEUE_JNDI = new String("jms/queue/KIE.SERVER.RESPONSE");

    private static final String SESSION_OBJECTS = "SessionObjects";

private KieServicesConfiguration conf;
private KieServicesClient kieServicesClient;

private Set<Class<?>> extraClassList = new HashSet<Class<?>>();

@Test
public void testJms() throws Exception {

final Properties env = new Properties();
env.put(Context.INITIAL_CONTEXT_FACTORY, INITIAL_CONTEXT_FACTORY);
env.put(Context.PROVIDER_URL, REMOTING_URL);
env.put(Context.SECURITY_PRINCIPAL, USER);
env.put(Context.SECURITY_CREDENTIALS, PASSWORD);
InitialContext context = new InitialContext(env);
ConnectionFactory connectionFactory = (ConnectionFactory) context.lookup(CONNECTION_FACTORY);

Queue requestQueue = (Queue) context.lookup(REQUEST_QUEUE_JNDI);
Queue responseQueue = (Queue) context.lookup(RESPONSE_QUEUE_JNDI);

conf = KieServicesFactory.newJMSConfiguration(connectionFactory, requestQueue, responseQueue, USER, PASSWORD);

        //conf.setResponseHandler(new AsyncResponseHandler(new CustomResponseCallback()));
}
Reply all
Reply to author
Forward
0 new messages