H5W3
当前位置:H5W3 > 其他技术问题 > 正文

程序分享:从UDDI注册中心查询服务

  查询服务程序的实现过程:创建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();  }  }  

本文地址:H5W3 » 程序分享:从UDDI注册中心查询服务

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址