ในบทความก่อนหน้านี้ฉันแนะนำให้คุณรู้จักกับคำอธิบายโดยละเอียดเกี่ยวกับการสอน WebService (I)
เหตุผลในการใช้เครื่องมือ:
1. ใช้เครื่องมือเพื่อทำความเข้าใจกระบวนการร้องขอเว็บเซอร์ที่ดีขึ้น
2. ใช้เครื่องมือ wsexplore เพื่อรับรูปแบบของการส่งข้อมูล SOAP และการรับสัญญาณ
3. ใช้เครื่องมือ TCP/IP Monitor เพื่อตรวจสอบข้อมูลเฉพาะของส่วนหัวคำขอ Interceptor และส่วนหัวการตอบกลับ
สบู่คืออะไร?
SOAP เป็นโปรโตคอลข้อความตามข้อกำหนดการเข้ารหัส XML พูดง่ายๆคือ SOAP คือการส่งข้อมูล XML บน HTTP เพื่อรับรู้การโทรจากระยะไกล [ไม่ว่าเซิร์ฟเวอร์ของคุณจะเขียนภาษาใดตราบใดที่คุณได้รับข้อมูล XML ของโปรโตคอล SOAP และส่งคืนข้อมูล XML ของโปรโตคอล SOAP
การใช้อินสแตนซ์ wsexplorer: ตรวจสอบว่า QQ ออนไลน์
เมื่อใช้การตรวจสอบ qqcheckonline ใน qqonlinewebservicesoap
qqcheckonlineresponse
qqcheckonlineresult (สตริง): n
คลิกแหล่งที่มาเพื่อดูข้อมูลรายละเอียดข้อมูลมีดังนี้:
1: นี่คือรูปแบบข้อความ:
การคัดลอกรหัสมีดังนี้:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: q0 =" http://webxml.com.cn/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema " xmlns: xsi = "http://www.w3.org/2001/xmlschema-instance">
-
-
870931520
2: ต่อไปนี้เป็นรูปแบบ XML ที่ได้รับ
การคัดลอกรหัสมีดังนี้:
http://schemas.xmlsoap.org/soap/envelope/ "xmlns: xsd =" http://www.w3.org/2001/xmlschema "xmlns: xsi =" http://ww.w3.org/200
-
- http://webxml.com.cn/ ">
n
เมื่อใช้ qqonlinewebservicehttpget หรือ qqonlinewebservicehttppost ผู้ส่งคืนทั้งหมด
nhttp: //webxml.com.cn/ "> n>
การใช้ TCP/IP Monitor
การตรวจสอบ TCP/IP ไม่เพียง แต่ดูข้อมูล SOAP แต่ยังได้รับข้อมูลส่วนหัวสำหรับคำขอและการรับส่งข้อมูล HTTP
1. ตำแหน่ง: เครื่องมือนี้อยู่ที่: หน้าต่าง> แสดงมุมมอง> อื่น ๆ > myeclipse Common (เครื่องมือทั่วไป)> TCP/IP Monitor
2. เครื่องมือนี้เทียบเท่ากับเอเจนต์ หลังจากเริ่มต้นมันจะฟังพอร์ตท้องถิ่นจากนั้นส่งต่อคำขอไปยัง IP และพอร์ตเป้าหมายที่ระบุ
หลังจากได้รับข้อมูลแล้วให้ส่งคืนข้อมูลไปยังลูกค้าที่ไม่บุบสลาย ในสายตาของลูกค้าตัวแทนนี้ควรเป็นคนแรกที่เข้าถึงได้เสมอมิฉะนั้นเราจะไม่เห็นกระบวนการส่งข้อมูล
3. ตัวเลือกการกำหนดค่า:
บนอินเทอร์เฟซ Open TCP/IP Monitor: เมนูดู (ลูกศรขนาดเล็กในทิศทางขวาบน)> คุณสมบัติ> เพิ่ม (เพิ่มทางด้านขวา)
ตั้งค่าเป็นคุณสมบัติต่อไปนี้:
ขั้นตอนแรก:
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 ในแถบที่อยู่
หมดเวลา: ตั้งค่าเวลาการเชื่อมต่อเมื่อการเข้าถึงไม่ประสบความสำเร็จและเก็บไว้เป็น 0 นั่นคือไม่ได้ตั้งค่า
หลังจากตั้งค่าให้คลิกปุ่มตกลงแล้วคลิกปุ่มเริ่มด้านขวาและการตรวจสอบได้เริ่มขึ้นแล้ว
ขั้นตอนที่ 2:
กำหนดค่า URL WSDL บน Myeclipse Webservice เป็น: http://127.0.0.1:9876/helloworld?wsdl โปรดทราบว่าพอร์ตของ Myeclipse TCP/IP จะใช้ แทนที่จะไปเยี่ยมชม http://127.0.0.1:6666/helloworld?wsdl โดยตรง
จะแก้ไขเนื้อหาของไฟล์ WSDL ได้อย่างไร?
ใช้คำอธิบายประกอบของ Webservice
1. @บริการการนิยามเว็บเซิร์ฟเวอร์
2. @วิธีการกำหนด webmethod
3. @webresult-definition ค่าคืนค่า
4. @พารามิเตอร์ WebParam-Define
หมายเหตุ: เวอร์ชันที่แตกต่างกันสนับสนุนระดับความคิดเห็นที่แตกต่างกัน:
1. ไม่รองรับ 1.5
2. เวอร์ชันก่อน 1.6.0_20 ต้องใช้คำอธิบายประกอบที่สมบูรณ์
3. หลังจาก 1.6.0_21 คุณสามารถใช้ @webservice เพื่อใส่คำอธิบายประกอบชั้นเรียนเท่านั้น
ฟังก์ชั่นของความคิดเห็น:
ผ่านความคิดเห็นของ Webservice คุณสามารถอธิบายบริการเว็บได้อย่างชัดเจนยิ่งขึ้น สิ่งนี้สร้างเอกสาร WSDL
เมื่อมีการแก้ไขคำอธิบายประกอบเว็บเซิร์ฟเวอร์รหัสที่สร้างโดยไคลเอนต์จะมีผลต่อ
ชื่อและชื่อพารามิเตอร์ของการเปลี่ยนแปลงที่เรียกด้วย
ตัวอย่าง:
@WebService (name = "myName", // name portType ที่สอดคล้องกัน = "myName" portname = "myport", // ชื่อพอร์ตที่สอดคล้องกัน = "myport" serviceName = "myService", // ชื่อบริการที่สอดคล้องกัน SimpledateFormat SDF = New SimpledateFormat ("YYYY-MM-DD HH: MM: SS"); @WebMethod (action = "myAction", // กำหนด soapaction = "myAction" เพื่อค้นหาวิธีนี้เพื่อดำเนินการ OperationName = "MyOperationName") // กำหนดวิธีที่สามารถเรียกได้ "HelloWorld"; } @webMethod (action = "mysayhiaction", OperationName = "MySayHioperationName") สาธารณะ @webresult (name = "mysayhiresult") สตริง sayshi (@webparam (name = "myParaname" "+ชื่อ+" เวลาปัจจุบันคือ: "+sdf.format (วันที่ใหม่ ()); return str; } โมฆะคงที่สาธารณะหลัก (สตริง [] args) {endpoint.publish ("http://127.0.0.1:6666/helloworld", HelloWorld ใหม่ ()); -3: หลังจากโปรแกรมข้างต้นออกสู่สาธารณะเราเข้าถึงได้ผ่าน Webservice Explorer ของ Myeclipse
คุณจะพบข้อความแจ้งที่แตกต่างจากก่อน แต่อันที่จริงแล้ววิธีการเดียวกันยังคงเรียกว่า
4: ใช้ WSIMPORT S อีกครั้ง http://127.0.0.1:6666/helloworld?wsdl เพื่อสร้างรหัส Java จากนั้นเรียกว่าต่อไปนี้เป็นรหัสการโทร (สามารถอธิบายได้ว่าไม่สามารถจดจำได้
แพ็คเกจ com.leaf.mynamespace; คลาสสาธารณะหลัก {โมฆะสาธารณะคงที่หลัก (สตริง [] args) {// โดยการวิเคราะห์ wsdl เราจะเห็นว่าการเรียก getMyport จาก MyService ส่งคืน myname myname myname = new MyService (). getMyPort (); // เรียกเมธอด sayhi ผ่าน mysayhioperationName ของ myName string str = myname.mysayhioperationName ("Wang Jian"); System.err.println (STR); -คำอธิบายโดยละเอียดเกี่ยวกับการสอน WebService (II) ให้ฉันแนะนำให้คุณรู้จักกับคุณก่อนฉันหวังว่ามันจะเป็นประโยชน์กับคุณ!