Utilizzo di un servizio web SOAP
Un'applicazione client può richiamare un set di regole del servizio decisioni come servizio web SOAP.
Prima di iniziare
L'applicazione client deve trasmettere le credenziali di autenticazione per il portale cloud (vedere Autenticazione per l'invocazione REST e SOAP ).
Nota:Operational Decision Manager on Cloud supporta SOAP 1.1. Non supporta le versioni successive di SOAP.
Informazioni su questa attività
Affinché un'applicazione client possa richiamare un set di regole del servizio decisioni come servizio Web SOAP, è necessario creare classi proxy da un file WSDL (Web Services Description Language) generato per il percorso del set di regole. Il formato di un file WSDL è indipendente dal linguaggio che lo genera.
Procedura
- Ottenere un file WDSL per un set di regole del servizio decisionale.
- Genera classi proxy dal file WSDL.
- Utilizza le classi proxy per richiamare il set di regole dalla tua applicazione client.
Esempio
Per ottenere un file WSDL dal Rule Execution Server :
- Distribuisci il set di regole al Rule Execution Server.
- Nella console Rule Execution Server, passare alla scheda Explorer.
- Nel riquadro Navigator, fare clic su RuleApp, e quindi fare clic sul set di regole corrispondente al servizio di decisione.
- Nella vista delle regole, fare clic su Recupera file di descrizione HTDS.
- Selezionare SOAP come tipo di protocollo di servizio.
- Controllare l'ultima versione del set di regole e l'ultima RuleApp versione per generare il file WSDL per le versioni più recenti.
- Clicca su Scarica.
Per questa procedura, è necessario avere Eclipse IDE per sviluppatori Jakarta EE installato sul computer. Include la piattaforma Web Tools per generare le classi proxy per richiamare il servizio web da un'applicazione Java™. Per generare le classi proxy con Apache Axis:
- Avvia Eclipse IDE per gli sviluppatori Jakarta EE e crea un nuovo progetto Java ( ) per ospitare le classi proxy.
- Copiare il file WSDL in questo progetto Java.
- Fare clic su .
- Nella procedura guidata Client servizio Web, fare clic su Avanti.
- Per la definizione del servizio, selezionare il file WSDL.
- Sposta il cursore per selezionare Sviluppa cliente.
- In Configurazione, assicurarsi che Apache Axis sia selezionato come runtime del servizio Web, quindi selezionare il progetto Java come progetto client in cui si desidera ospitare le classi proxy generate.
- Fare clic su Fine.
Il seguente esempio di codice Java importa le classi proxy per
MiniloanServiceRuleset e richiama il set di regole da un'applicazione Java:import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.MiniloanServiceMiniloanServiceRulesetBindingStub;
import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.MiniloanServiceRulesetDecisionServiceProxy;
import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.MiniloanServiceRulesetRequest;
import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.MiniloanServiceRulesetResponse;
import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.param.Borrower;
import com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.param.Loan;
public class DecisionServiceExecution {
public static void main(String[] args) {
// Replace <vhostname> with the name of the host of the Cloud portal
// NB: endpointURI is defined in the location attribute of the WDSL file
String endpointURI = "https://<vhostname>.bpm.ibmcloud.com/odm/dev/DecisionService/ws/MiniloanService/MiniloanServiceRuleset/v75";
MiniloanServiceRulesetDecisionServiceProxy proxy = new MiniloanServiceRulesetDecisionServiceProxy(endpointURI);
MiniloanServiceMiniloanServiceRulesetBindingStub stub = (MiniloanServiceMiniloanServiceRulesetBindingStub)proxy.getMiniloanServiceRulesetDecisionService_PortType();
// Replace "loginID" with the functional ID of the service account you are using to authenticate with your tenant in the Cloud
stub.setUsername("loginID");
// Replace "password" with the password of the service account you are using to authenticate with your tenant in the Cloud
stub.setPassword("password");
// Set the borrower
com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.Borrower borrower =
new com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.Borrower(
"John", // name
600, // credit score
80000); // yearlyIncome
Borrower borrowerParam = new Borrower(borrower);
// Set the loan
com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.Loan loan =
new com.ibm.www.rules.decisionservice.MiniloanService.MiniloanServiceRuleset.Loan(
500000, // amount
240, // duration
0.05, // yearlyInterestRate
0, // yearlyRepayment (to be computed by the decision service)
true, // approved (set to true by default, to be computed by the decision engine),
null); // messages (to be computed by the decision service)
Loan loanParam = new Loan(loan);
// Set the decision ID
String decisionID = "1";
MiniloanServiceRulesetRequest request = new MiniloanServiceRulesetRequest(decisionID, borrowerParam, loanParam);
try {
MiniloanServiceRulesetResponse response = proxy.miniloanServiceRuleset(request);
System.out.println("Rules executed.");
System.out.println("Approved: " + response.getLoan().getLoan().isApproved());
System.out.println("Yearly interest rate: " + response.getLoan().getLoan().getYearlyInterestRate());
System.out.println("Yearly repayment: " + response.getLoan().getLoan().getYearlyRepayment());
String[] messages = response.getLoan().getLoan().getMessages();
if (messages != null) {
System.out.println("Messages: ");
for (String message : messages) {
System.out.println(message);
}
}
}
catch (Exception e) {
throw new RuntimeException("An error occurred when invoking Decision Service at: "
+ endpointURI, e);
}
}
}