質問

UDDIサーバー(JUDDI-PORTAL-BUNDLE-3.0.4)にJUDDI v3.0.4クライアントを使用しています。私の興味は、アクセスポイントWSDLが後でWebServiceを照会できるようにするために、そのバインディングテンプレートを照会するサービス(私が成功した)と照会を見つけることです。

BindingTemplateキーを知っていれば、アクセスポイントを取得することができます。

絞り込みオブジェクトを使用して、サービスのBindingTemplatesを照会しようとすると、 "javax.xml.ws.soap.soapFaultException:少なくとも1つのカテゴリバッグ、find_tmodel、またはtmodelbagが指定されている必要があります"#:.しかし、FindBindingオブジェクトのいずれかを記入することはできません。

私は何かがありませんか?、サービステンプレートとそのWSDLが後で入手する正しい方法ではありませんか?

ありがとう。

オスカー

役に立ちましたか?

解決

私は解決策を見つけました。 このキーは、ビジネスサービスオブジェクトを介してバインディングテンプレートを探すことです。これはBindingTemplateオブジェクトを扱います。

so、

  1. uddiinquiryportTypeによって提供されるfindService(findService FS)APIを介したサービスキーのクエリ。
  2. 返されるServiceListの場合は、サービスキーを含むServiceInfoオブジェクトを取得します。
  3. あなたが探しているサービスキーを与えられている(FindServiceは名前オブジェクトを介してスコープされることがあります)、getServicedEtailオブジェクトがサービスキーで入力されているuddiinquireportTypeによって提供されるgetServicedetail(getServicedetail SD)APIを介してサービスの詳細を取得します。。
  4. 前のクエリによって返されたServicedEtailオブジェクトのリストは、Webサービス定義(WSDL)を含むBindingTemplatesを導きます。

    それが役立つことを願っています。

他のヒント

助けのために秦玉珠のおかげで。コードは次のとおりです。

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