kettle调用webservice

当我们往数据库迁移数据时,如果对有些数据有特定的生成规则要求我们可以先写webservice再用kettle调用webservice去生成相应的数据。


首先我们需要一个表输入控件和一个webservice控件。如下图:


表输入里面配好数据库,我们根据自己的要求写sql查出对应的数据。如下图



然后写 webservice(这边我们是java  cxf的webservice)例子如下:


import com.founder.fasf.util.ObjectUtil;
import com.founder.rhip.ehr.entity.basic.PersonInfo;
import com.founder.rhip.ehr.service.personal.IPlatformService;
import org.springframework.stereotype.Service;


import javax.annotation.Resource;
import javax.jws.WebParam;
import javax.jws.WebService;
import java.math.BigDecimal;
import java.util.Date;



@Service("createPersonWebService")
@WebService(serviceName="createPersonWebService")
public class CreatePersonWebService implements ICreatePersonWebService{
    private static String folder;
    @Resource(name = "platformService")
    private IPlatformService personService;


    public  void caretePerson(@WebParam(name = "idcard") String idcard, @WebParam(name = "idcardFarm") String idcardFarm,
                              @WebParam(name = "name") String name, @WebParam(name = "birthday") Date birthday
                              {

        PersonInfo personInfo = new PersonInfo();
        if(ObjectUtil.isNotEmpty(idcard)){personInfo.setIdcard(idcard);}
        if(ObjectUtil.isNotEmpty(idcardFarm)){personInfo.setIdcardFarm(idcardFarm);}
        if(ObjectUtil.isNotEmpty(name)){personInfo.setName(name);}
        if(ObjectUtil.isNotEmpty(birthday)){personInfo.setBirthday(birthday);}


        String id1 =  personService.createPerson(personInfo, "personId", false);
}

}

写好webservice然后再配置kettle里的webservice。url:方法地址,操作和下面的是方法名称,如下图


配置webservice的in  名称是表输入里查询的字段名, WS名称是webservice里的接受参数名   WS类型是数据类型