...
- Deploy the rule service through the BRS management console. You can follow either of the two methods:
- Bundle all artifacts in an .aar file and upload it (Rule Service -> Upload menu).
- Create using the Rule Service wizard UI (Rule Service -> Create menu).
The above steps are discussed in detail in section Exposing Rules as Services.
- After deployment, click on List under Services in the main tab of the management console. The service will appear in the Deployed Services page.
- Click OrderApproval to access the dashboard of the service.
- Click Try this service in the Client Operations widget of the dashboard to invoke the Try-it tool.
Issue a request similar to the following in the Try-it tool.
Code Block language xml <price>10</price> <quantity>9</quantity> <symbol>IBM</symbol>
You would get the following response:Code Block language xml <orderReject> <reason>An Order for stocks of IBM is accepted only if the number of stocks is higher than 10.</reason> </orderReject>
Enter another request as follows:
Code Block language xml <price>120</price> <quantity>100</quantity> <symbol>SUN</symbol>
You would get the following response
Code Block language xml <orderAccept> <message>Accepted order for: 100 stocks of SUN at$ 120.0</message> </orderAccept>
Enter another request as follows:
Code Block language xml <price>50</price> <quantity>160</quantity> <symbol>MSFT</symbol>
You would get the following result:Code Block language xml <orderReject> <reason>An Order for stocks of MSFT is accepted only if the stock price is higher than 50 $ and the number of stocks is lower than 200.</reason> </orderReject>
Alternatively, you can use Generate Axis2 Client link in the
Client Operations
widget of the dashboard to invoke the service. A client using generated stub codes is shown below where the codes were generated with the Unpacks the data binding classes check box checked.Code Block language java package org.wso2.carbon.samples; import org.wso2.carbon.samples.orderApprovalService.order.OrderAccept; import org.wso2.carbon.samples.orderApprovalService.order.PlaceOrder; import org.wso2.carbon.samples.orderApprovalService.order.PlaceOrderE; import org.wso2.carbon.samples.orderApprovalService.order.PlaceOrderRespone; import org.wso2.carbon.samples.orderApprovalService.stub.OrderApprovalServiceCallbackHandler; import org.wso2.carbon.samples.orderApprovalService.stub.OrderApprovalServiceStub; import java.rmi.RemoteException; public class PlaceOrderTestCase { public static void main(String[] args) { try { OrderApprovalServiceStub orderApprovalServiceStub = new OrderApprovalServiceStub("http://localhost:9763/services/OrderApprovalService"); PlaceOrderE placeOrderE = new PlaceOrderE(); PlaceOrder placeOrder = new PlaceOrder(); placeOrder.setSymbol("Company A"); placeOrder.setPrice(150); placeOrder.setQuantity(128); PlaceOrder[] placeOrders = new PlaceOrder[1]; placeOrders[0] = placeOrder; placeOrderE.setOrder(placeOrders); PlaceOrderRespone placeOrderRespone = null; //new PlaceOrderRespone(); try { placeOrderRespone = orderApprovalServiceStub.placeOrder(placeOrders); } catch (RemoteException e) { e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. } OrderAccept[] orderAccepts = placeOrderRespone.getOrderAccept(); String result = orderAccepts[0].getMessage(); System.out.println(result); } catch (Exception e) { e.printStackTrace(); } } }