Вопрос

Я использую juddi v3.0.4 клиент для запроса сервера uddi (juddi-portal-pundle-3.0.4).Мой интерес заключается в том, чтобы найти услугу (которое мне удалось) и запросить его шаблоны связывания, на самом деле, чтобы получить точку доступа WSDL, чтобы иметь возможность запросить Webservice позже.

Я могу только получить точку доступа, если я знаю ключ BindingTemplate, которую я получаю через Pluto Portal, выпущенный с помощью сервера UDDI.

Когда я пытаюсь запросить для запроса BindingTemplates сервиса, с объектом поиска, я получаю «javax.xml.ws.soap.soapfaultException: по крайней мере один категорий, find_tmodel или tmodelbag) должен поставляться".Но я не могу заполнить ни одно из них в объекте поиска.

Я что-то упускаю?, это не правильный способ получить сервисный шаблон и его WSDL позже?

спасибо.

Оскар.

Это было полезно?

Решение

Я обнаружил решение. Ключ состоит в том, чтобы искать шаблоны связывания через объект Business Service, это несет на объект BindingTemplate.

Так,

  1. Запрос для ключей службы через API Findservice (Findservice FS), предлагаемый UDDiinquiryporttype.
  2. для возврата сервисного обслуживания, получите объекты ServiceInfo, которые содержат сервисные клавиши.
  3. Учитывая ключи обслуживания, которые вы ищете (Findservice может быть выделен с помощью объекта имени), получить подробную информацию о обслуживании через API GESTERVICEICETAIL (GESTERVICEICEALETAIL SD), предлагаемый UDDiinquiryporttype, где объект GESTERVICEICHICAIL заполнен с помощью клавиш сервиса,
  4. Список объектов Servicedetail, возвращаемые предыдущим запросом, проведут вас к BindingTeMplates, которые содержат определение веб-службы (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