سؤال

كيفية الرجوع إلى ملفات WSDL من السجل عند تحديد خدمة وكيل جديدة؟أنا أستخدم WSO2 ESB.

س1: هل يمكنني استخدام localEntry عنصر لتحديد WSDL في خدمة الوكيل الخاصة بي؟على سبيل المثال:

localEntry key="my_wsdl" src="file:/wsdl/MyServiceSOAP.wsdl"

بشرط أن أكون قد استخدمت من قبل وحدة إدارة > أضف المجموعة > إنشاء "wsdl"، و إضافة الموارد > MyServiceSOAP.wsdl.لدي مشكلة مع قيمة "src" على حد سواء

"/wsdl/MyServiceSOAP.wsdl" 
و
"wsdl/MyServiceSOAP.wsdl" 
لا تعمل.أنا أتابع وثائق ولكنها لا تظهر كيفية تحميل WSDLs إلى التسجيل.

س2: ماذا لو قام MyServiceSOAP.wsdl باستيراد MyService.wsdl؟أحتاج إلى استخدام إضافة الموارد لـ MyService.wsdl أيضًا ولكن هل أحتاج إلى القيام بأي شيء آخر لتجميع الوكيل؟

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

المحلول

أعتقد أنك تشير إلى التسجيل هنا.تحتوي مساحة التسجيل في كل منتج على ثلاثة أقسام رئيسية.

  • محلي
  • إعدادات
  • الحكم

Registry Space in the ESBيحتوي سجل التكوين على تكوين خاص بالمنتج يمكن مشاركته عبر مثيلات متعددة لنفس المنتج (مجموعة من عقد ESB على سبيل المثال).لذا يمكنك إنشاء مجموعة WSDL داخل سجل التكوين والرجوع إليها مثل..

"conf:/wsdl/MyServiceSOAP.wsdl"

ومن خلال تحميل الموارد إلى السجل، يمكنك اختيارها بسهولة عند إنشاء خدمة الوكيل أيضًا.enter image description here

أعتقد أنه يمكنك الإشارة إلى الموارد باسم "file:/wsdl/MyServiceSOAP.wsdl" فقط عندما تكون داخل دليل يسمى "wsdl" في نظام الملفات المحلي.راجع للشغل ، حول رسائل الخطأ ..إذا نظرت إلى سجلات خادم ESB فسترى الخطأ التالي عندما تحاول تحديث الوكيل بالإشارة إلى ملف غير موجود.

Caused by: java.io.FileNotFoundException: ./wsdl/MyServiceSOAP.wsdl (No such file or directory)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:120)
    at java.io.FileInputStream.<init>(FileInputStream.java:79)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161)
    at org.apache.synapse.config.SynapseConfigUtils.getObject(SynapseConfigUtils.java:197)
    ... 46 more

نصائح أخرى

لقد وجدت حلاً بسيطًا لذلك من إحدى المدونات:في السيناريو الخاص بي كان لدي wsdl، الذي قام باستيراد wsdl آخر قام باستيراد xsd.كانت الهياكل الفعلية في wsdl الثاني.

سطر الاستيراد في wsdl الأصلي:

    <wsdl:import namespace="http://www.somedomain.com/interface/v1_0" location="service_interface_1_0.wsdl"/>

سطر الاستيراد في wsdl الثاني:

    <xsd:import namespace="http://www.somedomain.com/data/v1_0" schemaLocation="data_types_1_0.xsd"/>

مطلوب XML على الوكيل:

    <publishWSDL key="file_required_service_1_0.wsdl">
  <resource location="service_interface_1_0.wsdl"
            key="file_service_interface_1_0.wsdl"/>
  <resource location="data_types_1_0.xsd"
            key="file_data_types_1_0.xsd"/>

حيث لدي إدخالات محلية لـ "file_required_service_1_0.wsdl" وما إلى ذلك تسمى الإدخالات المحلية التي تحتوي على ملفات wsdl وxsd الأصلية.

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