KETTLE内WEBSERVICE实现对自定义类对象的传递

来源:互联网 发布:悦诗风吟淘宝旗舰店假 编辑:程序博客网 时间:2024/05/22 02:24

1.正确安装JDK以及KETTEL,并完成相关配置,kettle相关资料见论坛(http://www.ukettle.org/forum.php)

2.kettle内自带的webservice控件,只支持string,date,int等基本类型的参数传递,因此自定义类的参数不能使用该控件;

   于是解决该问题需要用到kettle内部的User Defined Java Class(UDJC)控件,程序员可以该插件内自由编程,导入所需的jar包,完成相应的功能。

3.本次UDJC内相关代码的编写,均先在eclipse环境下调试,调试通过后再移植到kettle UDJC。

4. 本次调用的webservice是.net下发布的,所以决定采用axis2编写java客户端程序对.net下服务端webservice进行调用。

4.1 使用vs软件 自己创建web服务,并发布,最后得到一个******.asmx网站地址

4.2 下载axis2软件包axis2-1.7.3-bin,然后解压到相应文件夹,在cmd,到G:\axis2-1.7.3-bin\axis2-1.7.3\bin目录下,输入wsdl2java.bat -uri http://www.XXX.XXX.asmx?wsdl,回车

4.2 bin下面生成MyWebServiceCallbackHandler.java和MyWebServiceStub.java两个文件。

4.3 eclipse下新建新的工程,导入axis2的相应lib库,同时创建对应的目录将4.2中产生的两个文件添加进去,TEST()类如下代码:

package zzy613;
import org.tempuri.MyWebServiceStub; 
import org.tempuri.MyWebServiceStub.*; 
public class Test {  
public static void test1(){  
        try{  
        Student s=new Student();
        s.setName("abca");
        s.setAge(24);
        s.setSex(false);
        MyWebServiceStub stub = new MyWebServiceStub();  
            stub._getServiceClient().getOptions().setProperty(    
                    org.apache.axis2.transport.http.HTTPConstants.CHUNKED,    
                    Boolean.FALSE);  
            GetStudent pat = new GetStudent();  
            pat.setZzy(s);  
            String array = stub.getStudent(pat).getGetStudentResult();         
                System.out.println(array);
        }catch(Exception e){  
            e.printStackTrace();  
        }  
    }    
   /** 
     * @param args 
    */  
    public static void main(String[] args) throws Exception{  
        test1();  
    } 
}  

4.4成功运行调试完成后,将4.2中对应文件夹下的两个java文件export为jar包,放入kettle下lib文件夹下!

5.打开kettle,拖进UDJC控件,import相应jar包,编写相关调用代码,实现对webservice自定义类参数的传递的调用。

遇到的问题:

1..net webservice发布过程中,注意IIS权限的添加;

2.java客户端对.net webservice 服务端的调用 有多种方法,作者先后尝试了axis以及axis2,最后采用axis2,因为其方便,出错率低,封装好,更易实现。axis很多参数需要在程序中认为添加改动,容易出错,而且不利于自定义类参数的传递。

3.在程序从eclipse移植到kettle的过程中编译通过,但是运行出错,注意这里容易犯这两个错。

3.1 编译出错,可能没有把axis2相应的jar包添加到kettle lib下;

3.2 编译成功,运行提示错误,很可能lib库下同时添加了新旧两个版本相同的jar包,这个错误较容易被忽视,且debug过程中不易发现


1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 我把别人的卵子踢碎了怎么办 两岁宝宝不小心被猫抓出血怎么办 两岁宝宝小蛋蛋肿了怎么办 吃大胺片过敏蛋皮又痛又痒怎么办 刚出生二十天宝宝蛋蛋有疝气怎么办 宝宝八个月蛋蛋一个没掉下来怎么办 引产23天同房内射肚子疼怎么办l 房东禁止养宠物如果养了怎么办 圆通快递退回但没有签收记录怎么办 信用卡没有收到又退回去了怎么办 新疆不给邮寄快递被退回运费怎么办 淘宝上已付款还在想留言怎么办 b超显示肾结石但x光看不到怎么办 洗脚让洗脚妹摸射精了怎么办 在新疆塔城干活不给工资怎么办 挨打了屁股肿的又大又硬怎么办 李贞将军有关电影小腿肌腱疼怎么办 朋友老婆老是背地里说我坏话怎么办 当你听到别人在背后说你时怎么办 分手了和前任是同事需要见面怎么办 和附近的人聊天他约你见面怎么办 微信约妹子发完红包拉黑了怎么办 户口本被前妻扣着不能结婚怎么办 部队当兵户口没注销退伍回去怎么办 没打疫苗的狗狗咬了我的嘴巴怎么办 新车被撞了还没上牌怎么办? 签了合同上两天班想辞职怎么办 刚到公司上班两天想辞职怎么办 签入职合同一天后就不想干了怎么办 入职材料交了第二天就想离职怎么办 宝宝40周多了还不想出来怎么办 工厂上班不到三个月不给辞工怎么办 单位辞职后不上班了保险怎么办 药流6个小时没流下来怎么办 小孩有口臭怎么办这几天不想吃饭 七个月宝宝口臭不想吃饭怎么办啊 老公工作累想要辞职不上班怎么办 药物流产后第6天咋下坠的怎么办 药流第一天胎囊没有掉下来怎么办 药流还有一点没流干净怎么办 3个月的宝宝被电了一下怎么办