![]() ![]() ![]() ![]() ![]() ![]() |
This section contains information on the following subjects:
This document explains how to develop a new Web Service endpoint to consume the events that are emitted by the Event Manager and also explains how to extend the Event Manager to use other notifier plug-ins.
For information about configuring the Event Manager, see Configuring the Oracle Enterprise Repository Event Manager.
The following figure shows how a Web Service endpoint can be plugged-in to receive the Events emitted by the Oracle Enterprise Repository Event Manager.
Following these steps to create a new Web Service endpoint and start getting events.
eventNotifier.jar
located in the <
oer Webapp path
>/WEB-INF/lib
directory. Here is a snapshot of the WSDL file
This section describes the available operation for a new Web Service endpoint, and how to specify operations in the Event Manager.
The Oracle Enterprise Repository Event Manager supports the following operations.
This operation takes the event object that is defined in the XML schema section as an input and returns the status as the output. The status is defined as string type. Additionally, if the status string starts with Failure, then the Event Manager will throw an exception and will try to re-deliver the event until it succeeds. If not, it will log the response and will deliver the next event unless there is a transport exception.
This operation takes the event data in string form as an input and returns the status as the output. The status is defined as string type. Additionally, if the status string starts with Failure, then the Event Manager will throw an exception and will try to re-deliver the event until it succeeds. If not, it will log the response and will deliver the next event unless there is a transport exception.
This operation takes the event object that is defined in the XML schema section as an input and is defined as a one-way operation.
This operation takes the event data in string form as an input and is defined as a one-way operation.
This operation should be used only if the Process Engine is Oracle Business Process Management. This operation internally invokes the startSession
operation to start session to authenticate with Oracle Business Process Management. It will also call discardSession
after the invocation.
The preferred Web Service operation can be selected by configuring the Event Manager’s Subscription Manager the following way, as specified in the operationName
element.
<sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<sub:eventSubscription>
<sub:endPoint name=”ALBPMEndpoint3”>
<sub:host>localhostt>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>http://www.bea.com/infra/events</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>admin</sub:username>
<sub:username>admin</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier </sub:notifierClass>
<sub:expression></sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>
The Oracle Enterprise Repository Event Manager includes a default SOAP/HTTP notifier. A new plug-in can be developed and plugged in if there are additional requirements, as illustrated here.
Follow these steps to make the new plug-in work with the Event Manager.
AbstractEventNotifier
that is bundled with the Oracle Enterprise Repository Event Manager. This class is bundled with the eventNotifier.jar
located in the <
oer Webapp path
>/WEB-INF/lib
directory. The init()
and sendNotification()
methods need to be overridden. Refer to the Javadoc for more information about these methods. The handle()
method passes the event data in an XML Beans format, which can be used to send it to an external Web Service.notifierClass
element as follows:<sub:EventSubscriptionData xmlns:sub=”http://www.bea.com/infra/events/subscription” xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”>
<sub:eventSubscription>
<sub:endPoint name=”ALBPMEndpoint3”>
<sub:host>localhost</sub:host>
<sub:port>9000</sub:port>
<sub:uri>fuegoServices/ws/StatusChangeEnpointServiceListener</sub:uri>
<sub:targetNamespace>StuatusChangeEndpoint</sub:targetNamespace>
<sub:operationName>newEvent</sub:operationName>
<sub:authenticationData>
<sub:basicAuthentication>
<sub:username>admin</sub:username>
<sub:username>admin</sub:username>
</sub:basicAuthentication>
</sub:authenticationData>
</sub:endPoint>
<sub:notifierClass>com.bea.infra.event.notifier.plugin.http.DefaultHTTPEventNotifier</sub:notifierClass>
<sub:expression>id > 500</sub:expression>
</sub:eventSubscription>
</sub:EventSubscriptionData>
<
oer Webapp path
>/WEB-INF/lib
directory so that it is picked up by the classpath.init()
and handle()
methods of the new notifier plug-in.
It is possible that there may be an endpoint with an Interface or Contract that is not compatible with Oracle Enterprise Repository Event Manager. This is because the tool that is used to develop the endpoint may have restrictions to use the WSDL provided by Oracle Enterprise Repository Event Manager, or there may be other inter-operability issues. The following approach can be used under those circumstances:
![]() ![]() ![]() |