...
Deploying and Testing the Service
- 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 Banking Service 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 the following request to make a deposit:
Code Block language html/xml <amount>2432</amount> <accountNumber>330021vc</accountNumber>
You would get the following result:
Code Block language html/xml <message>Deposit was successfully done.5 percentage credits is given because the deposit amount is higher than 1000. Amount was : 2432. Your account balance is now : 2432</message>
Issue another request as follows to make a withdrawal:
Code Block language html/xml <amount>200</amount> <accountNumber>330021vc</accountNumber>
You would get the following response:Code Block language xml <message>Withdraw was successfully done. Amount was : 232. Your new account balance is : 23192</message>
Alternatively, you can click Generate Client 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 databinding classes check box checked.
Code Block language java package org.wso2.carbon.samples; import org.apache.axis2.AxisFault; import org.wso2.carbon.samples.bankingService.deposit.Deposit; import org.wso2.carbon.samples.bankingService.deposit.DepositAccept; import org.wso2.carbon.samples.bankingService.deposit.DepositE; import org.wso2.carbon.samples.bankingService.stub.BankingServiceStub; import org.wso2.carbon.samples.bankingService.withdraw.*; import java.rmi.RemoteException; public class BankingServiceTestCase { public static void main(String[] args) { try { BankingServiceStub bankingServiceStub = new BankingServiceStub("http://localhost:9763/services/BankingService"); bankingServiceStub._getServiceClient().getOptions().setManageSession(true); DepositE depositRequest = new DepositE(); Deposit deposit = new Deposit(); deposit.setAccountNumber("070229x"); deposit.setAmount(1000); depositRequest.addDeposit(deposit); Deposit[] deposits = new Deposit[1]; deposits[0] = deposit; depositRequest.setDeposit(deposits); DepositAccept[] results = bankingServiceStub.deposit(deposits); String result = results[0].getMessage(); System.out.println(result); WithDrawE withDrawRequest = new WithDrawE(); Withdraw withdraw = new Withdraw(); withdraw.setAccountNumber("070229x"); withdraw.setAmount(500); Withdraw[] withdraws = new Withdraw[1]; withdraws[0] = withdraw; withDrawRequest.setWithDraw(withdraws); WithDrawRespone withDrawRespone = bankingServiceStub.withDraw(withdraws); WithdrawAccept[] withdrawAccepts = withDrawRespone.getWithdrawAccept(); WithdrawReject[] withdrawRejects = withDrawRespone.getWithdrawReject(); String resultWithDraw = withdrawAccepts[0].getMessage(); System.out.println(resultWithDraw); } catch (AxisFault axisFault) { axisFault.printStackTrace(); } catch (RemoteException e) { e.printStackTrace(); } } }
Excerpt hidden true Banking service sample to demonstrate the stateful behavior of a rule session in the WSO2 Business Rules Server.
...