Posted by: piman007 | 03-05-2007

การแก้ปัญหาค่า soap address ใน wsdl

คำถาม

เรียน อาจารย์ กานดา,

ดิฉันเคยเข้า train เรื่อง web service กับอาจารย์เมื่อเดือนที่แล้ว ที่ software park ค่ะ ซึ่งหลังจากได้พัฒนา web service ให้กับองค์กร พบปัญหาที่จะขอคำแนะนำจากอาจารย

์ดังนี้ค่ะ
    ดิฉันได้พัฒนา web service ด้วย netbean และใช้ Sun application server หลังจากที่ได้พัฒนาเสร็จ และได้ deploy ขึ้น server พบปัญหาเกี่ยวกับเอกสาร wsdl ที่ netbean ได้ autogen ให้ พบว่าค่าของ soap address location ระบุ host ไม่ถูกต้อง ไม่มีการระบุ domain ต่อท้ายชื่อ host ทำให้ client เรียกแล้วเกิด error ว่า unknown host ซึ่งค่าของ uri ที่ระบุ ไม่ได้ระบุด้วยชื่อ host แต่ระบุเป็น ip หลังจาก deploy พบว่าค่าเปลี่ยนไปเป็นชื่อเครื่องอัตฺโนมัติค่ะ
     ตัวอย่างเช่น
uri =http://100.22.111.111:8081/testws/testService?wsdl
soap:address location="http://aaa:8081/testws/testService"
    ซึ่งชื่อเครื่องคือ "aaa" แต่หาก client เครื่องอื่นจะรู้จักด้วย "aaa.org" ไม่รู้จัก "aaa" ที่ไม่มี domain org ทำให้เกิด error unknown host เมื่อทำการเรียก web service
    ไม่ทราบว่ามีวิธีการแก้ไขอย่างไรให้ soap:address location ระบุเป็น ip ตาม uri ที่เรากำหนดค่ะ
     รบกวนขอคำแนะนำจากอาจารย์ด้วยค่ะ
คำตอบ 
จะขอยกตัวอย่างว่า อย่างเช่น อ ต้องการเปลี่ยน address ให้เป็น IP 202.28.93.198 นะค่ะ
1. ไปที่ไดเรกทอรี {local glassfish instance}/domains/domain1/config 
อย่างเช่น เครื่องของอาจารย์คือ ไดเรกทอรี C:SunAppServerdomainsdomain1config
2. แก้ไขไฟล์ domains.xml โดยให้แก้ไขอิลิเมนต์ http-listener
จาก 
<http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id="http-listener-1" port="8080" security-enabled="false" server-name="" xpowered-by="true"> 
ให้เป็น
 <http-listener acceptor-threads="1" address="0.0.0.0" blocking-enabled="false" default-virtual-server="server" enabled="true" family="inet" id="http-listener-1" port="8081"server-name="202.28.93.198" security-enabled="false" xpowered-by="true">
3.  Restart Sun Application Server  
4.  Deploy Web service and view its WSDL
Now we have soap:address change to 202.28.93.198:8081 as we wish. 
 

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s

หมวดหมู่

%d bloggers like this: