في المقالة السابقة ، قدمت لك شرحًا مفصلاً للبرنامج التعليمي لـ WebService (I)
أسباب استخدام الأدوات:
1. استخدم الأدوات لفهم عملية طلبات خدمة الويب بشكل أفضل
2. استخدم الأداة wsexplore للحصول على تنسيق نقل بيانات الصابون واستقباله.
3. استخدم أداة TCP/IP للأداة لمراقبة البيانات المحددة لرأس طلب التقاطع ورأس الاستجابة
ما هو الصابون؟
SOAP هو بروتوكول نص يعتمد على مواصفات تشفير XML. ببساطة ، SOAP هو نقل بيانات XML على HTTP لتحقيق المكالمات عن بُعد [بغض النظر عن اللغة التي يتم كتابتها الخادم الخاص بك ، طالما أنك تتلقى بيانات XML لبروتوكول SOAP وإرجاع بيانات XML لبروتوكول SOAP ، يمكن أن يطلق عليه أي لغة]
باستخدام مثيل wsexplorer: تحقق من أن QQ متصل بالإنترنت
عند استخدام التحقق من qqcheckonline في qqonlinewebservicesoap ، يتم إرجاعه
qqcheckonlineresponse
qqcheckonlineresult (سلسلة): ن
انقر فوق المصدر لرؤية المعلومات التفصيلية ، والمعلومات هي كما يلي:
1: هذا هو تنسيق الرسالة:
نسخة الكود كما يلي:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: q0 =" http://webxml.com.cn/ " Xmlns: XSI = "http://www.w3.org/2001/xmlschema-inostance">
-
-
870931520
2: ما يلي هو تنسيق XML المستلم
نسخة الكود كما يلي:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns:
-
- http://webxml.com.cn/ ">
ن
عند استخدام qqonlinewebservicehttpget أو qqonlinewebservicehtpost ، فإن جميعها هي كلها
nhttp: //webxml.com.cn/ "> n>
باستخدام شاشة TCP/IP
لا يمكن لمراقبة TCP/IP رؤية بيانات الصابون فحسب ، بل أيضًا الحصول على معلومات رأس لطلبات HTTP وحفلات الاستقبال.
1. الموقع: توجد هذه الأداة على: نافذة> عرض العرض> آخر> Myeclipse Common (أدوات شائعة)> شاشة TCP/IP
2. هذه الأداة تعادل وكيل. بعد بدء التشغيل ، سيستمع إلى منفذ محلي ثم إعادة توجيه الطلب إلى IP والمنفذ الهدف المحدد.
بعد الحصول على البيانات ، أعد البيانات إلى العميل سليمة. في عيون العملاء ، يجب أن يكون هذا الوكيل دائمًا أول من يمكن الوصول إليه ، وإلا فلن نرى عملية نقل البيانات.
3. خيارات التكوين:
على واجهة شاشة TCP/IP المفتوحة: عرض القائمة (سهم صغير في الاتجاه الأيمن العلوي)> خصائص> إضافة (أضف على اليمين)
تعيين على الخصائص التالية:
الخطوة الأولى:
1) منفذ المراقبة المحلي (استمع إلى رقم المنفذ المحلي): 9876 ، قم بتعيين رقم منفذ 4 بت في الإرادة ، وسيتم الوصول إليه في شكل http://127.0.0.1:9876
2) اسم المضيف (الخادم الذي سيتم الاستماع إليه ، مثل www.vevb.com): 127.0.0.1 لأن الجهاز ينشر خدمة ويب ، فإنه يراقب IP الأصلي. يمكن أن يكون أي مضيف.
3) منفذ (منفذ الخادم المستهدف الذي سيتم الاستماع إليه): 6666 - لأن خدمة الويب التي نشرناها هي http://127.0.0.1:6666/helloworld ، 6666 هو رقم المنفذ الذي يحتاج إلى الاستماع إليه.
4) النوع (نوع الاستماع):
- TCP/IP: سيتم استخدام العنوان الأصلي لمواصلة الوصول إلى الطلب التالي ، مثل إدخال المستخدم: http://127.0.0.1:9876/helloworld؟wsdl سيعود إلى عنوان وصول خدمة WSDL كما كان من قبل.
- HTTP: سيستمر عنوان الوجهة في الوصول إلى الطلب التالي. عند إدخال المستخدم: http://127.0.0.1:9876/helloworld؟wsdl سوف يستخدم http://127.0.0.1:6666/helloworld للوصول إلى طريقة Sayhi عند طلب الطريقة. لن تكون هذه الطريقة وكيل. لأنه لم يعد رقم المنفذ الذي يتم الاستماع إليه.
في نوع الاستماع ، اخترت TCP/IP ، ثم قمت بفحص تغيير العنوان في ملف WSDL الذي تم إرجاعه عن طريق الإدخال: http://127.0.0.1:9876/helloworld؟wsdl في شريط العناوين.
Time Out: قم بتعيين وقت الاتصال عندما يكون الوصول غير ناجح ، واحتفظ به إلى 0 ، أي أنه لم يتم ضبطه.
بعد إعداده ، انقر فوق الزر "موافق" ، ثم انقر فوق الزر "ابدأ" على اليمين ، وبدأت المراقبة.
الخطوة 2:
قم بتكوين عنوان URL WSDL على خدمة الويب myeclipse إلى: http://127.0.0.1:9876/helloworld؟wsdl ، لاحظ أن منفذ Myeclipse TCP/IP يستخدم. بدلاً من زيارة http://127.0.0.1:6666/helloworld؟wsdl المنشورة
كيفية تعديل محتوى ملف WSDL؟
استخدم تعليقات WebService.
1
2
3. @webresult-definition قيمة الإرجاع
4. @WebParam-Define Parameters
ملاحظة: تدعم الإصدارات المختلفة مستويات مختلفة من التعليقات:
1. 1.5 غير مدعوم.
2. الإصدارات قبل 1.6.0_20 يجب استخدام التعليقات التوضيحية الكاملة.
3. بعد 1.6.0_21 ، يمكنك فقط استخدام WebService لتعليق الفصل.
وظيفة التعليقات:
من خلال تعليقات WebService ، يمكنك وصف خدمة الويب بشكل أكثر وضوحًا. هذا يولد وثيقة WSDL.
عند تعديل شرح خدمة الويب ، سيؤثر الرمز الذي تم إنشاؤه بواسطة العميل أيضًا.
أسماء الأسلوب وأسماء المعلمات التي تم استدعاؤها تم تغييرها أيضًا.
مثال:
webservice (name = "myName" ، // porttype المقابلة = "myName" portName = "myport" ، // name port المقابلة = "myport" serviceName = "myService" ، // classe classe = "myservice" targetnamespace = http://lleaf.com/mynamespace " SimpleDateFormat sdf = جديد simpledateFormat ("Yyyy-MM-DD HH: MM: SS") ؛ webMethod (Action = "myaction" ، // تحديد soapaction = "myAction" للعثور على هذه الطريقة لتنفيذ OperationName = "MyOperationName") // تحديد الطريقة التي يمكن استدعاؤها ، وسيتم إنشاء طريقة محددة للصف المقابل ، و name = ".. "مرحبا بالعالم"؛ } webMethod (Action = "mySayHiAction" ، OperationName = "mySayHioperationName") publicwebresult (name = "mySayHiresult") سلسلة sealhi (webParam (name = "myparaname" ، // ضع المعلمات في معلومات العناية إلى حماية المعلمة. "Hello:"+name+"، الوقت الحالي هو:"+sdf.format (New Date ()) ؛ إرجاع شارع } Main Static Void Main (String [] args) {endpoint.publish ("http://127.0.0.1:6666/helloworld" ، New HelloWorld ()) ؛ }}3: بعد إصدار البرنامج أعلاه للجمهور ، نصل إليه من خلال مستكشف Myeclipse's WebService
ستجد رسالة موجهة مختلفة عن ذي قبل ، ولكن في الواقع ، لا تزال نفس الطريقة تسمى.
4: استخدم wsimport مرة مرة أخرى. http://127.0.0.1:6666/helloworld؟wsdl لإنشاء رمز Java ثم الاتصال بما يلي هو رمز الاتصال (يمكن وصفه بأنه لا يمكن التعرف عليه ، ولكن يتم تنفيذ نفس العمل.)
حزمة com.leaf.mynamespace ؛ الفئة العامة الرئيسية {public static void main (string [] args) {// عن طريق تحليل WSDL ، يمكننا أن نرى أن استدعاء getMyport من myService يعيد myName myName = new myservice () getMyport () ؛ // استدعاء طريقة sayhi من خلال mysayhioperationName of myName String str = myname.mysayHioperationName ("Wang Jian") ؛ System.err.println (Str) ؛ }}شرح مفصل للبرنامج التعليمي لـ WebService (2) دعني أقدمه لك هنا أولاً ، آمل أن يكون ذلك مفيدًا لك!