从UDDI注册中心查询服务

王朝java/jsp·作者佚名  2006-01-09
宽屏版  字体: |||超大  

查询服务程序的实现过程:创建Inquiry对象,并设置查询地址;声明FindBusiness对象,并设置查询服务名和相关属性;获得BusinessList对象,然后层层向下查询:BusinessList->BusinessInfo->ServiceInfo->BusinessService->BindingTemplate,最后得到AccessPoint对象,调用getText()方法,就可获得该服务的入口地。得到服务的WSDL之后,可利用WSIF调用这个服务的方法。见如下程序的方法:

public void getServicesURL(){

try{

Inquiry inq=new Inquiry();

inq.setURL("http://huijddn.com/services/uddi/inquiryapi");

FindQualifiers fqs = new FindQualifiers();

FindBusiness fb = new FindBusiness();

fb.setFindQualifiers(fqs);

fb.setName(new Name("MagazineServices"));//查找服务名MagazineServices的服务

BusinessList rBusinessList = inq.findBusiness(fb);

BusinessInfos rBusinessInfos = rBusinessList.getBusinessInfos();

Vector rBusinessInfoVector = rBusinessInfos.getBusinessInfoVector();

BusinessInfo rBusinessInfo;

for (int y =0; y < rBusinessInfoVector.size(); y++)

{

rBusinessInfo = (BusinessInfo)rBusinessInfoVector.elementAt(y);

System.out.println("*********BUSINESS INFO********");

System.out.println("Attribute BusinessKey: "+rBusinessInfo.getBusinessKey());

Name rName = rBusinessInfo.getName();

System.out.println("Name : "+rName.getValue());

Vector rDesVector = rBusinessInfo.getDescriptionVector();

Description rDes=null;

printDescriptionVector(rDesVector);

ServiceInfos rSerInfos = rBusinessInfo.getServiceInfos();

Vector rServiceInfoVector = rSerInfos.getServiceInfoVector();

ServiceInfo rServiceInfo;

for (int x =0; x<rServiceInfoVector.size();x++)

{

System.out.println("*********Service Info********");

rServiceInfo = (ServiceInfo)rServiceInfoVector.elementAt(x);

System.out.println("Service Info Name: "+rServiceInfo.getName().getValue());

System.out.println("ServiceKey : "+rServiceInfo.getServiceKey());

System.out.println("BusinessKey : "+rServiceInfo.getBusinessKey());

String magazineServer=rServiceInfo.getServiceKey();

ServiceDetail rServiceDetail = inq.getServiceDetail(gsd);

Vector rBusinessServiceVector = rServiceDetail.getBusinessServiceVector();

BusinessService rBS;

for (int a=0;a<rBusinessServiceVector.size();a++)

{

System.out.println("*****************BUSINESS SERVICE***************");

rBS = (BusinessService)rBusinessServiceVector.elementAt(a);

Vector rDesVector = rBS.getDescriptionVector();

BindingTemplates rBTs = rBS.getBindingTemplates();

if (rBTs !=null)

{

Vector rBTVector = rBTs.getBindingTemplateVector();

BindingTemplate returnBindingTemplate;

for (int i = 0; i < returnBindingTemplateVector.size(); i++)

{

System.out.println("***********BINDING TEMPLATE*************");

returnBindingTemplate =(BindingTemplate)returnBindingTemplateVector.elementAt(i);

Vector rDesVector = returnBindingTemplate.getDescriptionVector(); AccessPoint rAP = returnBindingTemplate.getAccessPoint();

java.net.URL url=new URL(rAP.getText());//找到服务的URL地址

}

}

}

}

}

}catch(Exception e){

e.printStackTrace();

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有