Activiti 5.18 - Extending the REST API
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-04-2015 12:29 PM
Hello all,
I am trying to create a custom rest service that utilizes the engine api. I created a maven spring project and coded the RestController. I am not sure where I should place this class for the DispatcherServlet to route to the 'dsw/sendResponse' endpoint. Do I need to make any changes to activiti-rest web.xml or any configuration file?
——– RestController —–
—— activiti-rest webapp web.xml —
<blockcode>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>Activiti REST</display-name>
<!– All the Servlets and Filters are configured by this ServletContextListener : –>
<listener>
<listener-class>org.activiti.rest.servlet.WebConfigurer</listener-class>
</listener>
</web-app>
</blockcode>
I am trying to create a custom rest service that utilizes the engine api. I created a maven spring project and coded the RestController. I am not sure where I should place this class for the DispatcherServlet to route to the 'dsw/sendResponse' endpoint. Do I need to make any changes to activiti-rest web.xml or any configuration file?
——– RestController —–
package org.activiti.rest.service.api.dsw;import java.util.HashMap;import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.activiti.engine.RuntimeService;import org.activiti.engine.runtime.Execution;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class CustomRestController { @Autowired private RuntimeService runtimeService; @RequestMapping(value = "/dsw/sendResponse", method = RequestMethod.PUT, produces = "application/json") public MessageCorrelationResponse correlate(@RequestBody MessageCorrelationRequest messageRequest, HttpServletRequest request) { MessageCorrelationResponse messageResponse = new MessageCorrelationResponse(); if (checkValidString(messageRequest.getMessageName()) && checkValidString(messageRequest.getCorrelationKey()) && checkValidString(messageRequest.correlationKeyValue) && checkValidString(messageRequest.getMessagePayload())) { String messageName = messageRequest.getMessageName(); // Locate the execution using the correlation Execution execution = runtimeService.createExecutionQuery().messageEventSubscriptionName(messageName) .variableValueEquals(messageRequest.getCorrelationKey(), messageRequest.correlationKeyValue) .singleResult(); // Set message into map Map<String, Object> variableMap = new HashMap<String, Object>(); variableMap.put("_MessageName", messageName); variableMap.put("_MessageContent", messageRequest.getMessagePayload()); runtimeService.messageEventReceived(messageName, execution.getId(), variableMap); messageResponse.setResult("success"); } else messageResponse.setResult("Invalid inputs"); return messageResponse; } private boolean checkValidString(String str) { if (str != null && !str.isEmpty()) return true; return false; }}
—— activiti-rest webapp web.xml —
<blockcode>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>Activiti REST</display-name>
<!– All the Servlets and Filters are configured by this ServletContextListener : –>
<listener>
<listener-class>org.activiti.rest.servlet.WebConfigurer</listener-class>
</listener>
</web-app>
</blockcode>
Labels:
- Labels:
-
Archive
2 REPLIES 2

Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-07-2015 10:46 AM
By default the org.activiti.rest.service.api package is scanned by Spring, so if your RestController is in this package or a sub package then it should be ok.
Best regards,
Best regards,
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-08-2015 04:00 PM
Thanks Tijs. It works fine.
