-
Language:
English
-
Language:
English
Chapter 13. Endpoints
Clients can access Intelligent Process Server for OpenShift via multiple endpoints; by default the provided templates include support for REST, HornetQ, and ActiveMQ.
13.1. REST
Clients can use the REST API in various ways:
13.1.1. Browser
- Current server state: http://host/kie-server/services/rest/server
- List of containers: http://host/kie-server/services/rest/server/containers
- Specific container state: http://host/kie-server/services/rest/server/containers/processserver-library
13.1.2. Java
// LibraryClient.java KieServicesConfiguration config = KieServicesFactory.newRestConfiguration( "http://host/kie-server/services/rest/server", "kieserverUser", "kieserverPassword"); config.setMarshallingFormat(MarshallingFormat.XSTREAM); ProcessServicesClient client = KieServicesFactory.newKieServicesClient(config).getServicesClient(ProcessServicesClient.class); Map<String,Object> params = new HashMap<String,Object>(); LoanRequest loanRequest = new LoanRequest(); loanRequest.setIsbn("978-0-307-35193-7"); params.put("loanRequest", loanRequest); Long processInstanceId = client.startProcess("processserver-library", "LibraryProcess", params);
13.2. JMS
Client can also use the Java Messaging Service, as demonstrated below:
13.2.1. Java (HornetQ)
// LibraryClient.java Properties props = new Properties(); props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.naming.remote.client.InitialContextFactory"); props.setProperty(Context.PROVIDER_URL, "remote://host:4447"); props.setProperty(Context.SECURITY_PRINCIPAL, "kieserverUser"); props.setProperty(Context.SECURITY_CREDENTIALS, "kieserverPassword"); InitialContext context = new InitialContext(props); KieServicesConfiguration config = KieServicesFactory.newJMSConfiguration(context, "hornetqUser", "hornetqPassword"); config.setMarshallingFormat(MarshallingFormat.XSTREAM); ProcessServicesClient client = KieServicesFactory.newKieServicesClient(config).getServicesClient(ProcessServicesClient.class); Map<String,Object> params = new HashMap<String,Object>(); LoanRequest loanRequest = new LoanRequest(); loanRequest.setIsbn("978-0-307-35193-7"); params.put("loanRequest", loanRequest); Long processInstanceId = client.startProcess("processserver-library", "LibraryProcess", params);
13.2.2. Java (ActiveMQ)
// LibraryClient.java props.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.jndi.ActiveMQInitialContextFactory"); props.setProperty(Context.PROVIDER_URL, "tcp://host:61616"); props.setProperty(Context.SECURITY_PRINCIPAL, "kieserverUser"); props.setProperty(Context.SECURITY_CREDENTIALS, "kieserverPassword"); InitialContext context = new InitialContext(props); ConnectionFactory connectionFactory = (ConnectionFactory)context.lookup("ConnectionFactory"); Queue requestQueue = (Queue)context.lookup("dynamicQueues/queue/KIE.SERVER.REQUEST"); Queue responseQueue = (Queue)context.lookup("dynamicQueues/queue/KIE.SERVER.RESPONSE"); KieServicesConfiguration config = KieServicesFactory.newJMSConfiguration( connectionFactory, requestQueue, responseQueue, "activemqUser", "activemqPassword"); config.setMarshallingFormat(MarshallingFormat.XSTREAM); ProcessServicesClient client = KieServicesFactory.newKieServicesClient(config).getServicesClient(ProcessServicesClient.class); Map<String,Object> params = new HashMap<String,Object>(); LoanRequest loanRequest = new LoanRequest(); loanRequest.setIsbn("978-0-307-35193-7"); params.put("loanRequest", loanRequest); Long processInstanceId = client.startProcess("processserver-library", "LibraryProcess", params);