服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

程序分享:从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();
  }
  }

扫描关注微信公众号