سؤال

أنا أستخدم عميل Juddi V3.0.4 للاستفسار عن خادم UDDI (Guddi-portal-bundle-3.0.4).مصلحتي هي العثور على خدمة (التي نجحتها) واستعلام عن قوالبها الملزمة، في الواقع للحصول على نقطة الوصول WSDL لتكون قادرا على الاستعلام عن Webservice لاحقا.

يمكنني فقط الحصول على نقطة الوصول إذا كنت أعرف مفتاح BindingTemplate، الذي أحصل عليه عبر بوابة Pluto التي تم إصدارها باستخدام خادم UDDI.

عندما أحاول الاستعلام عن Bindingtemplates من الخدمة، مع كائن FindBinding، أحصل على "javax.xml.ws.soap.soapfaultException: يجب توفير الفئة واحدة على الأقل، يجب توفير find_tmodel أو Tmodelbag".لكنني لا أستطيع ملء أي من تلك الموجودة في كائن FindBinding.

هل أنا أفتقد شيئا؟، أليس كذلك الطريقة الصحيحة للحصول على قالب خدمة و WSDL في وقت لاحق؟

شكرا.

أوسكار.

هل كانت مفيدة؟

المحلول

اكتشفت الحل. المفتاح هو البحث عن قوالب ملزمة من خلال كائن خدمة العمل، وهذا يحمل إلى كائن Bindingtemplate.

لذلك،

  1. استعلام لمفاتيح الخدمة عبر findservice (findservice fs) api المقدمة من uddiinquiryporttype.
  2. بالنسبة للخدمة التي تم إرجاعها، احصل على كائنات ServiceInfo التي تحتوي على مفاتيح الخدمة.
  3. نظرا لمفاتيح الخدمة التي تبحث عنها (قد يتم استبدال FindService عبر كائن اسم)، احصل على تفاصيل الخدمة عبر تطبيق API GetSerficedetail (GetServiceTail SD) الذي يقدمه Uddiinquiryporttype، حيث يتم ملء كائن GetSerficedeta في مع مفاتيح الخدمة.
  4. قائمة كائنات Servicedetail التي تم إرجاعها بواسطة الاستعلام السابق سوف يرشدك إلى Bindingtemplates التي تحتوي على تعريف خدمة الويب (WSDL).

    آمل أن يساعد.

نصائح أخرى

بفضل 秦玉珠 للحصول على المساعدة.يمكن أن يكون الرمز كما يلي: giveacodicetagpre.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top