...
This demonstrates how to use the rule service upload UI for deploying a rule service.
1. Create a valid jar JAR containing the java Java classes of facts and results defined for the "Order Approval" sample usecase use case in section Sample Rule Definition.
2. Create the Drools file that defines the rules for the sample use case. Note that the file must be in .drl format, not .dsrl.
3. Create a rule service configuration using the instruction in section BRS Configuration Languageinstructions in File-Based Configuration. The configuration file used for the sample is shown below, which is named as service.rsl (Rule Service Language).
Code Block | ||||
---|---|---|---|---|
| ||||
<ruleService name="OrderApprovalService" xmlns="http://wso2.org/carbon/rules" targetNamespace="http://com.test/orderApproval"> <ruleSet> <rule resourceType="regular" sourceType="file">orderApprovalRules.drl</rule> </ruleSet> <operation name="placeOrder"> <input wrapperElementName="placeOrder" namespace="http://com.test/placeorder"> <fact elementName="order" namespace="http://com.test/placeorder" type="samples.userguide.PlaceOrder"></fact> </input> <output wrapperElementName="placeOrderRespone" namespace="http://com.test/placeorder"> <fact elementName="orderAccept" namespace="http://com.test/placeorder" type="samples.userguide.OrderAccept"></fact> <fact elementName="orderReject" namespace="http://com.test/placeorder" type="samples.userguide.OrderReject"></fact> </output> </operation> </ruleService> |
Info | ||
---|---|---|
| ||
|
56. Log in to the WSO2 BRS management console and select "Rule Service -> Upload" in the "Main" menu.
67. The "Upload Rule Service" window opens. Upload the file created in step 4 and click "Upload". For example,
78. The "Deployed Services" window opens with the newly uploaded business rules exposed as a service. Click on it to access its dashboard and select the TryIt option on the "Client Operations" panel in the service dashboard.
89. The Try-It tool can be used to test the sample through a request similar to the one shown bellow.
Code Block |
---|
<symbol>Company A</symbol> <quantity>223</quantity> <price>14</price> |
...
10. Each rule can be tested by changing values in the symbol, price and quantity. For the request given above, the response will be as follows.
Code Block | ||
---|---|---|
| ||
<brs:placeOrderResponse> <brs:result> <brs:OrderAccept xsi:type="ax2277:OrderAccept"> <ax2275:message>Accepted order for: 223 stocks of Company A at$ 14.0</ax2275:message> </brs:OrderAccept> </brs:result> </brs:placeOrderResponse> |
...
11. Also, the WSDL of the service can be used to generate client-side code (stub) required for the service invocation. There is an option for code generation in the services management page. A client using generated stub codes is shown below and the codes are generated with option - "Unpacks the databinding classes".
...