从UDDI注册中心查询服务

2008-02-23 09:36:43来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

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

上一篇: Servlet与Web服务
下一篇: 服务器是怎么要求客户端强行弹出身份验证窗口的

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:java函数传值的一点心得

下一篇:组件框架技术tapestry及简单对比