Configuring Process Engine REST Service
The Process Engine REST Service servlet reads configuration settings from a configuration file.
- Assigns the Content Platform Engine URI
- Assigns the connection point that is needed for the REST Service servlet to establish a session with the workflow system.
- Defines the handler classes for the REST resources
- Ensure that this connection point is created for the Content Platform Engine.
- Change the connection point setting in the configuration file to an existing connection point.
cp=connectionPointName option
when you specify a REST resource URI. See Process Engine REST Service Reference for
instructions.For more information about connections points, see Defining the workflow system.
You can change this configuration file (in the deployed directory), but the REST Service servlet reads the configuration only upon initialization. Modifying the file requires that the Web application that contains the REST Service servlet needs to be restarted.
REST Service Configuration File
The REST Service configuration file is installed in the following location:
<Content Platform Engine EAR file>\peengine.war\WEB-INF\P8BPMRESTConfig.xml
Configuration File Schema
The XML schema for the configuration file is as follows:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://www.ibm.com/p8/bpm/v1/rest/config/schema" targetNamespace="http://www.ibm.com/p8/bpm/v1/rest/config/schema" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="P8BPMREST">
<xs:complexType>
<xs:sequence>
<xs:element name="version.path">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="filenet.pe.bootstrap.ceuri">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
<xs:element name="connection.point">
<xs:complexType>
<xs:attribute name="value" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="resource.handler" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="path" type="xs:string" use="required"/>
<xs:attribute name="className" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="standalone" type="xs:boolean" default="false" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>
Example Configuration File
The following output is an example of a working configuration file:
<perest:P8BPMREST xmlns:perest="http://www.ibm.com/p8/bpm/v1/rest/config/schema" perest:standalone="false">
<perest:version.path value="/p8/bpm/v1"/>
<perest:filenet.pe.bootstrap.ceuri value="/FileNet/Engine"/>
<perest:connection.point value="RESTCP"/>
<perest:resource.handler path="workclasses" className="filenet.pe.rest.handlers.WorkClasses"/>
<perest:resource.handler path="workclasses/{workclassName}" className="filenet.pe.rest.handlers.AWorkClass"/>
<perest:resource.handler path="workclasses/{workclassName}/structure" className="filenet.pe.rest.handlers.WorkClassStructure"/>
<perest:resource.handler path="rosters/{rosterName}/wc/{workclassName}/wob/{wobID}" className="filenet.pe.rest.handlers.WorkClassLauncher"/>
<perest:resource.handler path="appspacenames" className="filenet.pe.rest.handlers.AppSpaces"/>
<perest:resource.handler path="appspacenames/{appspace}/rolenames" className="filenet.pe.rest.handlers.RoleNames"/>
<perest:resource.handler path="appspaces/{appspace}/myroles" className="filenet.pe.rest.handlers.Roles"/>
<perest:resource.handler path="appspaces/{appspace}/roles/{roleName}" className="filenet.pe.rest.handlers.Role"/>
<perest:resource.handler path="appspaces/{appspace}/roles/{roleName}/attributes" className="filenet.pe.rest.handlers.RoleAttributes"/>
<perest:resource.handler path="writableappspaces" className="filenet.pe.rest.handlers.WritableAppSpaces"/>
<perest:resource.handler path="writableappspaces/{appspace}" className="filenet.pe.rest.handlers.WritableAppSpace"/>
<perest:resource.handler path="writableappspaces/{appspace}/roles" className="filenet.pe.rest.handlers.WritableRoles"/>
<perest:resource.handler path="writableappspaces/{appspace}/roles/{roleName}" className="filenet.pe.rest.handlers.WritableRole"/>
<perest:resource.handler path="writableappspaces/{appspace}/roles/{roleName}/attributes" className="filenet.pe.rest.handlers.RoleAttributes"/>
<perest:resource.handler path="writableappspaces/{appspace}/roles/{roleName}/members" className="filenet.pe.rest.handlers.Members"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}" className="filenet.pe.rest.handlers.WorkBasket"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/filters" className="filenet.pe.rest.handlers.WorkBasketFilters"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/filters/{filterName}/attributes" className="filenet.pe.rest.handlers.WorkBasketFilterAttributes"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/columns" className="filenet.pe.rest.handlers.WorkBasketColumns"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/columns/{columnName}/attributes" className="filenet.pe.rest.handlers.WorkBasketColumnAttributes"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/attributes" className="filenet.pe.rest.handlers.WorkBasketAttributes"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/queueelements" className="filenet.pe.rest.handlers.QueueElements"/>
<perest:resource.handler path="queues/{queueName}/workbaskets/{workBasketName}/queueelements/count" className="filenet.pe.rest.handlers.QueueElementsCount"/>
<perest:resource.handler path="queues/{queueName}/stepelements/{wobID}" className="filenet.pe.rest.handlers.StepElement"/>
<perest:resource.handler path="currentuser" className="filenet.pe.rest.handlers.CurrentUser"/>
<perest:resource.handler path="securitydomains" className="filenet.pe.rest.handlers.SecurityDomains"/>
<perest:resource.handler path="queues/{queueName}/stepelements/{wobID}/milestones" className="filenet.pe.rest.handlers.Milestones"/>
<perest:resource.handler path="users" className="filenet.pe.rest.handlers.Users2"/>
<perest:resource.handler path="groups" className="filenet.pe.rest.handlers.Groups2"/>
</perest:P8BPMREST>
Logging Process Engine REST Service
The Process Engine REST Service can be configured for logging by using a mechanism, based on java.util.logging (JUL), defined by the Content Platform Engine. This mechanism allows logging settings to be defined by a properties file. Refer to topic ../../com.ibm.p8.ce.admin.tasks.doc/cpe_api_logging.html for details on how to utilize JUL.