أفضل طريقة لعكس-مهندس خدمة ويب واجهة من WSDL الملف ؟
-
04-07-2019 - |
سؤال
لقد ورثت ملف WSDL على خدمة ويب على نظام أنني لم يكن لديك الوصول إلى التنمية والاختبار.
أنا بحاجة إلى إنشاء خدمة ويب التي تتمسك بأن WSDL.المجمع هو .صافي ، ولكن إذا كان هناك طريقة سهلة للقيام بذلك مع منصة أخرى ، ونحن قد تكون قادرة على إلقاء نظرة على ذلك.إنتاج خدمة ويب هو جافا القائمة.
ما هي أفضل طريقة للذهاب عن فعل هذا ؟
ملاحظة:الموروثة wsdl لا يبدو أن تكون متوافقة مع wsdl.exe لأنها لا تتفق مع WS-I الشخصية الأساسية v1.1.ولا سيما المجموعة التي مرت على ذكر ويستخدم معيار آخر أن مايكروسوفت أداة لا يدعم لكنهم لم توضح.الخطأ هو المطلوب 'اسم' ميدان:
Error: Element Reference '{namespace}/:viewDocumentResponse' declared in schema type '' from namespace '' - the required attribute 'name' is missing
من أجل الوضوح ، أفهم أن أنا يمكن بسهولة إنشاء .صافي المجمع الدرجة من ملف WSDL ، ولكن هذا ليس ما أريد.انها مثل هذا:
تحديث:الأصلي خدمة ويب تم إنشاؤها باستخدام المحور.
المحلول
نحن نستخدم WSCF - خدمات ويب العقد الأول أداة من Thinktecture أن تفعل خدمة ويب التنمية وخلق XSD أولا ثم توليد واجهات خدمة باستخدام هذه الأداة.قد يكون من المفيد إنشاء واجهات خدمة من WSDL ولكن لم أجرب هذا بعد نفسي.
نصائح أخرى
قد تجد من المفيد أداة سطر الأوامر wsdl.exe
من .صافي باستخدام /serverInterface
خيار.وفقا للوثائق:
يولد واجهات جانب الخادم تنفيذ ASP.NET ويب الخدمة.واجهة ولدت كل ملزمة في مستند WSDL(s).WSDL وحده تطبق WSDL العقد (الطبقات التي تنفذ واجهة يجب أن لا تشمل أي من التالية على الطبقة طرق:خدمة ويب أو سمات التسلسل سمات هذا التغيير WSDL العقد).النموذج القصير هو '/سي'.
نعم - يمكنك استخدام WSCF (كما في أعلاه) لإنشاء تعليمات برمجية من جانب الخادم.URL الفعلي ومن ثم يمكن الكتابة إلى نقطة الاختبار URL الذي تريد استخدامه.
ولكن هذا فقط يولد كعب.لا يزال لديك التعليمات البرمجية الفعلية على سبيل المثالGetCustomers (طريقة) والتي هي إلى حد ما المشتبه به لأن لديك أي فكرة عن كيفية التنفيذ الفعلي يعمل.
ثم يمكنك إما صورية هذا أو إنشاء بسيط ويب ASP خادم لتشغيله.
محاولة وهمية المجمع واجهة استخدام RhinoMocks و StructureMap .
لست متأكدا إذا كان هذا سوف يساعد ،
ما فعلته في الآونة الأخيرة هو:
- تولد .cs استخدام ملف wsdl أداة أو visual studio
- لقد تغييره إلى فئة جزئية
- لقد خلق آخر فئة جزئية ، في كل ما يفعله هو إضافة خط إلى القول أن فئة تنفذ IWhatEver
- لقد خلق واجهة هو نفس الوكيل الذي تم إنشاؤه فئة (ولذلك الوكيل تنفذ بشكل كامل واجهة)
ثم لقد استعملت ساخرا إطار (موك) في حالتي ، ويسخر ويب, لقد ثم تستخدم الفقراء مان dependancy حقن (تمرير وهمية في منشئ فئة تحت الاختبار) ..والتي يمكن التعامل مع مثيل IWhatever
اختبار بعيدا..
على أمل أن يساعد