| Public class AddService{ Public double add(double addParameter1, double addParameter2) { Double addResposne; addResposne = addParameter1 +addParameter2; // WSDL 不会定义具体如何实现, //此处只是说明如何实现操作 Return addResponse; } } |
| Public class SubstractService{ Public double substract(double substractParameter1, double substractParameter2) { Double substractResposne = substractParameter1 - substractParameter2; Return substractResposne; } } |
| Public Interface CaculatorBPELInterface{ Public double caculatorProcess(double parameter1, double parameter2, String processType) ; } |
| Public class CaculatorBPELImple implements CaculatorBPELInterface { Public double caculatorProcess (double parameter1, double parameter2, String processType) { //步骤1:定义所要调用的外部类(相当于定义BPEL里面partnerLink) AddService addServer = new AddService(); SubstractService substractSevice = new SubstractService(); /*步骤2:定义输入和输出变量(相当于定义BPEL里面变量variable) 定义的变量如下: ● BPEL接口的输入和输出变量 ● 所要调用的外部类的接口方法的输入和输出变量 */ //定义BPEL接口的输入变量 Double caculatorProcessParameter1Request; Double caculatorProcessParameter2Request; Double caculatorProcessTypeRequest; //定义BPEL接口的输出变量 Double caculatorProcessResponse; //定义加法服务的输入变量 Double addParameter1Request; Double addParameter2Request; //定义加法服务的输出变量 Double addResponse; //定义减法服务的输入变量 Double substractParameter1Request; Double substractParameter2Request; //定义减法服务的输出变量 Double substractParameter1Response; //***将请求参数赋值给BPEL接口的输入变量 (相当于BPEL的receive) caculatorProcessParameter1Request = parameter1; caculatorProcessParameter2Request= parameter2; Double caculatorProcessTypeRequest= processType; //步骤3:定义条件,并调用外部接口 If (caculatorProcessTypeRequest.equals.(“add”’) // (相当于BPEL的switch/condition/case) { //**下面将调用加法服务 //将接口请求变量传给加法服务的请求变量 (相当于BPEL的assign/copy) addParameter1Request = caculatorProcessParameter1Request; addParameter2Request = caculatorProcessParameter2Request; //调用addService的接口 (相当于BPEL的Invoke) addResponse = addServer.add(addParameter1Request, addParameter2Request); //将addResponse赋值给BPEL接口的输出变量 (相当于BPEL的assign/copy) caculatorProcessResponse = addResponse; } else //(相当于BPEL的 condition/otherwise) { //将接口请求变量传给减法服务的请求变量 (相当于BPEL的assign/copy) substractParameter1Request = caculatorProcessParameter1Request; substractParameter2Request = caculatorProcessParameter2Request; //调用substractService的接口 (相当于BPEL的invoke) substractResponse = substractServer.substract(substractParameter1Request, substractParameter2Request); //将substractResponse赋值给BPEL接口的输出变量(相当于BPEL的assign/copy) caculatorProcessResponse = substractResponse; } Return caculatorProcessResponse; //相当于BPEL的reply } } |