1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
package com.vci.server.workflow.server.event;
 
import org.apache.axis.client.Call;
import org.apache.axis.client.Service;
 
import com.vci.server.workflow.common.resouce.WorkflowProperties;
 
public class PromteTask {
    public void promote(String ploid,String tableName,String[] dataStatus,String status, String partList) {
        try {
            // ,String[] params,String[] values,String templateName
//            String endpoint = "http://192.168.0.42:8080/axis/services/RMIPWorkFlow?wsdl";
            String ip = WorkflowProperties.getStringProperty("wsdl.ip");
            String endpoint = ip;
            System.out.println("endpoint is: " + endpoint);
            // 直接引用远程的wsdl文件 //以下都是套路
            Service service = new Service();
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(endpoint);
            call.setOperationName("taskStart");// WSDL里面描述的接口名称
            call.addParameter("taskId",
                    org.apache.axis.encoding.XMLType.XSD_DATE,
                    javax.xml.rpc.ParameterMode.IN);
            call.addParameter("taskParam",
                    org.apache.axis.encoding.XMLType.XSD_DATE,
                    javax.xml.rpc.ParameterMode.IN);
            call.addParameter("bWait",
                    org.apache.axis.encoding.XMLType.XSD_DATE,
                    javax.xml.rpc.ParameterMode.IN);
//            call.addParameter("partList",
//                    org.apache.axis.encoding.XMLType.XSD_DATE,
//                    javax.xml.rpc.ParameterMode.IN);
            // 接口的参数
            call.setReturnType(org.apache.axis.encoding.XMLType.XSD_BOOLEAN);// 设置返回类型
            
            String dataid = "";
            String ver = "";
            for(int i=0;i<dataStatus.length;i=i+3){
                if(dataStatus[i].startsWith("root")){
                    dataid += dataStatus[i].substring(4,dataStatus[i].length())+";";
                }else{
                    dataid = dataStatus[i]+";";
                }
                ver += dataStatus[i+1]+";";
            }
            
            Object[] objects = new Object[] { "",
                    "-vid "+dataid+" -ver "+ver+" -status " + status + " -partList " + partList  ,false};
            boolean result =(Boolean) call.invoke(objects);
            // 给方法传递参数,并且调用方法
            System.out.println("result is " + result);
        } catch (Exception e) {
            System.err.println(e.toString());
        }
    }
}