以raid模块为例其他模块只需要改下模块名
1.找到wsdl文件和pub.xsd文件 itl(版本模块)\source\gui\gui_web\ubs_webservice_demo\wsdl
2.使用wsdl2java命令生成java文件
wsdl2java -uri wsdl文件路径(F:\wsdl\raidmod.wsdl)-o 生成路径(F:\wsdl) -p 包结构(com.macrosan.raidmod)
3.将会生成两个文件 RaidmodCallbackHandler.java文件和RaidmodStub.java文件
4.将生成的两个java文件放在插件plugins下的com.macrosan.raid.model下面
5.自己写调用方法的java文件,调用文件命名RaidmodMethod.java
public static int delRaid(String raidName, RaidmodEndPoint endPoint) {
RaidmodStub.Raid_delete_request request = null;//通过request对象传到调用方法
RaidmodStub.Raid_delete_response response = null;//通过response对象去返回调用结果
try {
RaidmodStub stub = new RaidmodStub(endPoint.getEndPoint());//获取接口对象使用这个对象调用接口方法
setCallParms(stub);设置webservice调用的超时时间、HTTP分段传输机制、最大线程数
request = new RaidmodStub.Raid_delete_request();//从接口获取request对象
request.setRaid_name(raidName);//需要操作的raid名字
TestCodeTime.printBeforeWebServiceTime("raid_delete");//webservice调用开始时间
response = stub.raid_delete(request);
TestCodeTime.printAfterWebServiceTime("raid_delete");//webservice调用结束时间
avoidCloseWait(stub);//调用webservice以后清空资源,防止因为close_wait导致的内存溢出等异常
} catch (Exception e) {
logger.error("operation exception.",e);
}
String operate = String.format(Message
.getString("DELETE.RAID.AUDIT.LOG"), raidName);
if (response == null) {
AuditLog.send(endPoint.getDevice(), operate, WS_ERR, endPoint.getUser());
RootLogger.getLogEx().debug("webservice error");
return WS_ERR;
}
int ret = response.getRet();
if (WS_OK != ret) {
// error 抛异常
RootLogger.getLogEx().debug("delete raid error: " + ret);
}
AuditLog.send(endPoint.getDevice(), operate, ret, endPoint.getUser());
return ret;
}
//webservice任务结束
本文详细介绍了一个基于Webservice的集成过程,包括如何从wsdl文件生成Java代码,如何调用Webservice接口并处理响应,以及如何在插件中实现具体业务逻辑。
268

被折叠的 条评论
为什么被折叠?



