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过程中不易发现
- KETTLE内WEBSERVICE实现对自定义类对象的传递
- 关于WebService传递自定义对象的问题
- webservice 传递自定义类
- 使用WebService传递自定义对象需要注意的问题
- 详解如何动态调用WebService传递复杂对象的实现
- android调用webservice传递自定义类以及类的集合
- 自定义adapter实现对listview内item的控制
- Android 客户端调用基于XFire的webService方法传递自定义对象
- kettle 映射的使用——对自定义参数处理
- Aidl 基础其一 Aidl 单方向实现以及传递自定义类的对象
- Datatables内自定义按钮,并实现对table内数据的读取和操作。
- webService接口传递json对象数据为什么接口实现类获取不到?
- Android Activity间传递自定义类的对象
- Android Activity间传递自定义类的对象
- Android Activity间传递自定义类的对象
- 使用Intent传递自定义类对象出现的特殊情况
- java利用axis2调用.net写的webservice,传递自定义的实体类参数
- WebService CXF学习(进阶篇1):自定义对象传递(简单JavaBean对象)
- 欢迎使用CSDN-markdown编辑器
- Apache与Tomcat 区别联系
- 一个完整的Flexbox指南
- leetcode 189 Rotate Array
- 小白进阶之快速排序
- KETTLE内WEBSERVICE实现对自定义类对象的传递
- 竖排文字最兼容的方法
- 5-3文本域,支持多行文本输入
- 为什么print在Python 3中变成了函数?
- Spring IOC基础
- 获取语音类别进行说话
- android中的:scaleType属性
- 第一遍阅读之《信息系统开发与管理》(二战)
- 怎样把PPT文稿转换为word