我正在使用juddi v3.0.4客户来查询UDDI服务器(juddi-portal-bundle-3.0.4)。我的兴趣是找到一个服务(我成功)和查询其绑定模板,实际上是为了让访问点WSDL稍后能够查询WebService。

如果我知道BindingTemplate键,我只能获得接入点,我通过用UDDI服务器发布的Pluto Portal来获得。

当我尝试查询绑定服务时,使用findbinding对象,我get“javax.xml.ws.soap.soapfaultexception:必须提供至少一个类别包,find_tmodel或tmodelbag”。但我无法填写FindBinding对象中的任何一个。

我缺少一些东西吗?这不是让服务模板及其WSDL的正确方法稍后?

谢谢。

奥斯卡。

有帮助吗?

解决方案

我发现了解决方案。 关键是要通过业务服务对象查找绑定模板,这将执行绑定lemplate对象。

所以,

    UDDIInquiryPortType提供的FindService(FindService FS)API的服务密钥查询。
  1. 为返回的服务员,获取包含服务密钥的ServiceInfo对象。
  2. 给定您要查找的服务密钥(FindService可能通过名称对象范围),通过UDDIInquiryPortType提供的GetServiceDeTail(GetServicedTail SD)API获取服务详细信息,其中GeterARVICEDETAIL对象填充了服务密钥。
  3. 以前查询返回的servicedTail对象列表将指导您到包含Web服务定义(WSDL)的绑定值。

    希望它有所帮助。

其他提示

感谢秦玉珠的帮助。代码可以如下:

ServiceList list1=inquiryService.findService(findservice);
GetServiceDetail gsd=new GetServiceDetail();
for(ServiceInfo serviceInfo :list1.getServiceInfos().getServiceInfo()){
    gsd.getServiceKey().add(serviceInfo.getServiceKey());
    System.out.println(serviceInfo.getServiceKey());
    String servicekey=serviceInfo.getServiceKey();

    GetServiceDetail getServiceDetail=new GetServiceDetail();
    getServiceDetail.setAuthInfo(authinfo);
    getServiceDetail.getServiceKey().add(servicekey);
    ServiceDetail serviceDetail=inquiryService.getServiceDetail(getServiceDetail);
    BusinessService businessservice=serviceDetail.getBusinessService().get(0);
    System.out.println("fetched service name:"+businessservice.getName().get(0).getValue());
    String bindingkey = businessservice.getBindingTemplates().getBindingTemplate().get(0).getBindingKey();
    System.out.println(bindingkey);

    GetBindingDetail gbd = new GetBindingDetail();
    gbd.setAuthInfo(authinfo);
    gbd.getBindingKey().add(bindingkey);
    BindingDetail bindingdetail=inquiryService.getBindingDetail(gbd);
    BindingTemplate bindingtemplate=bindingdetail.getBindingTemplate().get(0);
    String accesspoint=bindingtemplate.getAccessPoint().getValue();
    System.out.println(accesspoint);
}
.

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top