通过wsdl文件生成java客户端及简单调用
2018-12-14 16:00 更新
首先:下载安装axis1.4 下载地址(http://download.csdn.net/download/u011255725/9911612) 环境路径配置:classpath:D:\Axis2\axis1.4\axis-1_4\lib. 在cc.bat中配置相关的生成规则(包括生成客户端的文件需要的关键jar包,生成文件目录和地址,wsdl文件等)如下:
set AXIS_HOME=D:\Axis2\axis1.4\axis-1_4
set CLASSPATH=,;%AXIS_HOME%\lib\axis.jar;%AXIS_HOME%\lib\axis-ant.jar;%AXIS_HOME%\lib\commons-discovery-0.2.jar;%AXIS_HOME%\lib\commons-logging-1.0.4.jar;%AXIS_HOME%\lib\jaxrpc.jar;%AXIS_HOME%\lib\log4j-1.2.8.jar;%AXIS_HOME%\lib\saaj.jar;%AXIS_HOME%\lib\wsdl4j-1.5.1.jar;%AXIS_HOME%\lib\mail.jar;
java org.apache.axis.wsdl.WSDL2Java -p com.tcl.esb.matplantsync SI_SRM_MatPlantSync_OB.wsdl
配置完成后双机cc.bat文件即可生成客户端程序com.tcl.esb.matplantsync。
注意:如果出现闪退情况,请运行cmd,输入java回车看java路径是否可以查看java信息,如果出现:系统找不到文件 C:\ProgramData\Oracle\Java\javapath\java.exe 解决方法:把环境变量配置path里边的java配置移到最前面。
使用方法: public static List<ZSMM_SMR_MAT_PLANT_SYNC> getMatplansync(String startDay,String endDay,String flag) throws Exception{
List<ZSMM_SMR_MAT_PLANT_SYNC> result=new ArrayList<ZSMM_SMR_MAT_PLANT_SYNC>();
BC_SRM_MatPlantSync_Sender_SI_SRM_MatPlantSync_OBLocator locator =new BC_SRM_MatPlantSync_Sender_SI_SRM_MatPlantSync_OBLocator();
SI_SRM_MatPlantSync_OBBindingStub stub = (SI_SRM_MatPlantSync_OBBindingStub) locator.getHTTP_Port();
stub.setUsername(Config.getUserName());
stub.setPassword(Config.getPassWord());
stub.setTimeout(Config.getTimeOut());
// 次数设置true,登录后才能保持登录状态,否则第二次调用ws方法时仍然会提示未登录。
stub.setMaintainSession(true);
// 调用ws的方法
ZFR15MM_SRM_MAT_PLANT_SYNC sync=new ZFR15MM_SRM_MAT_PLANT_SYNC();
//输出
ZSMM_SMR_MAT_PLANT_SYNC[] zfr={};
//获取输入参数
String ivFullFlag=flag;
String ivBegda=startDay;
String ivEndda=endDay;
sync.setIV_FULL_FLAG(ivFullFlag);
Date d1=new Date();
Date d2=new Date();
d1.setGenericDateValue(ivBegda);
d2.setGenericDateValue(ivEndda);
sync.setIV_BEGDA(d1);
sync.setIV_ENDDA(d2);
sync.setET_MAT_PLANT_INFO(zfr);
//设置消息头参数
ZS00_MSGHEADER msgHeader=new ZS00_MSGHEADER();
msgHeader.setAPP_ID("SRM");
msgHeader.setAPP_NAME("供应商管理系统");
msgHeader.setSUBMITDATE(DateUtil.getTodayTime());
msgHeader.setUSERID("srmadmin");
msgHeader.setUSERNAME("供应商管理系统");
sync.setIV_MSGHEADER(msgHeader);
logger.info("获取工厂—物料数据接口请求:"+sync.toString());
ZFR15MM_SRM_MAT_PLANT_SYNCResponse rsp=stub.SI_SRM_MatPlantSync_OB(sync);
ZSMM_SMR_MAT_PLANT_SYNC[] zs=rsp.getET_MAT_PLANT_INFO();
if(null!=zs&&zs.length>0){
logger.info("条数:"+zs.length);
result=Arrays.asList(zs);
}
return result;
}
以上内容是否对您有帮助:
更多建议: