到的BusinessInfo对象来进一步查询此BusinessEntity下属的BusinessService。注意到在BusinessInfo类中有一个方法getServiceInfos,它可以帮助我们得到此商业实体所提供的商业服务。
从BusinessInfo对象可以获取此商业实体下所有的ServiceInfo对象的集合。ServiceInfo对象定义了商业服务的基本信息,比较重要的有Name和ServiceKey。
类似地,用Inquiry类提供的getServiceDetail方法可以得到商业服务的详细信息,即BusinessService类。它包括商业服务的多种有用信息,如:Description,Category等。
进一步,根据BusinessService类定义的getBindingTemplates方法,又可以取得此服务下的所有绑定模板信息。
WebLogic UDDI Client API实例学习(一)(3)
时间:2010-12-21
在BindingTemplate对象中定义了绑定模板的一些重要属性,如:AccessPoint等。
再进一步,可以从BindingTemplate中提供的方法getTModelInstanceDetails中获取tModel Instance的详细信息,即InstanceDetails对象。包括有OverviewDoc。
从OverviewDoc可以得到OverviewURL,这就是我们在发布WebService时的WSDL的URL地址。
下面,笔者也给出一段代码演示了这个查询过程:
void echoBusiness2(String parm){
try {
file://查询BusinessInfo
FindBusiness fb = new FindBusiness();
fb.setName(new Name(parm));
Vector vBusinessInfo =finder.findBusiness(fb).getBusinessInfos().getBusinessInfoVector();
for(int i=0;i
BusinessInfo bInfo = (BusinessInfo)vBusinessInfo.elementAt(i);
log(bInfo.getName().getValue()+" ["+bInfo.getBusinessKey()+"]");
file://查询ServiceInfo
Vector vServiceInfo = bInfo.getServiceInfos().getServiceInfoVector();
for(int j=0;j
ServiceInfo sInfo = (ServiceInfo)vServiceInfo.elementAt(j);
log(sInfo.getName().getValue()+"["+sInfo.getServiceKey()+"]");
file://查询BusinessService
GetServiceDetail gsd = new GetServiceDetail();
gsd.addServiceKey(sInfo.getServiceKey());
Vector vBusinessService = finder.getServiceDetail(gsd).getBusinessServiceVector();
for(int k=0;k
BusinessService bService = (BusinessService)vBusinessService.elementAt(k);
file://查询BindingTemplate
Vector vBindingTemplate =
bService.getBindingTemplates().getBindingTemplateVector();
for(int p=0;p
BindingTemplate bTemplate =
(BindingTemplate)vBindingTemplate.elementAt(p);
log(bTemplate.getAccessPoint().getValue());
file://查询TModelInstanceInfo
Vector vTModelInstanceInfo =
bTemplate.getTModelInstanceDetails().getTModelInstanceInfoVector();
for(int q=0;q
TModelInstanceInfo tmInstanceInfo =
(TModelInstanceInfo)vTModelInstanceInfo.elementAt(q);
file://直接显示了InstanceDetails的OverviewDoc的信息
log(tmInstanceInfo.getInstanceDetails().getOverviewDoc().getOverviewURL().getValue());
}
}
}
}
}
}
catch (Exception ex) {
ex.printStackTrace();
}
}
这段代码比较长,嵌套很多,但是理清了头绪相信读者还是能够看明白的。 |