तो मैं एक सरल वेब सेवा है वापसी:JAX-WS: बनाने के लिए एक सोप प्रतिक्रिया एक HashMap वस्तु
@WebMethod(operationName="getBookList")
public HashMap<Integer,Book> getBookList()
{
HashMap<Integer, Book> books = new HashMap<Integer,Book>();
Book b1 = new Book(1,"title1");
Book b2 = new Book(2, "title2");
books.put(1, b1);
books.put(2, b2);
return books;
}
पुस्तक वर्ग भी सरल है:
public class Book
{
private int id;
private String title;
public int getId()
{
return id;
}
public String getTitle()
{
return title;
}
public Book(int id, String title)
{
id = this.id;
title = this.title;
}
}
अब जब आप फोन ब्राउज़र की परीक्षक में इस वेब सेवा, मैं:
Method returned
my.ws.HashMap : "[email protected]"
SOAP Request
...
...
SOAP Response
<?xml version="1.0" encoding="UTF-8"?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
<S:Body>
<ns2:getBookListResponse xmlns:ns2="http://ws.my/">
<return/>
</ns2:getBookListResponse>
</S:Body>
</S:Envelope>
यह ज करना संभव है लौटे HashMap वस्तु <return>
टैग में दिखाया गया है, की तरह
<return>
<Book1>
id=1
title=title1
</Book1>
</return>
<return>
<Book2>
id=2
title=title2
</Book2>
</return>
कारण है कि मैं वापसी टैग में मान चाहते हैं कुछ एवेन्यू है, क्योंकि ग्राहक की ओर से, मैं jQuery AJAX का उपयोग कर रहा एक वेब पेज में इस कॉल करने के लिए वेब सेवा, और प्रतिक्रिया एक्सएमएल मुझे मिल रहा है बस <return>
टैग खाली है। मैं AJAX क्लाइंट साइड से वास्तविक पुस्तक मान कैसे प्राप्त करूं?
$.ajax({
url: myUrl, //the web service url
type: "POST",
dataType: "xml",
data: soapMessage, //the soap message.
complete: showMe,contentType: "text/xml; charset=\"utf-8\""
});
function showMe(xmlHttpRequest, status)
{ (xmlHttpRequest.responseXML).find('return').each(function()
{ // do something
}
}
मैं सरल हैलो दुनिया वेब सेवा के साथ परीक्षण किया है और यह काम किया:
यहाँ मेरी AJAX वेब कोड है।
उत्तर "यह निर्भर करता है" :) आपका सबसे अच्छा शर्त है कि आप अपने पसंदीदा आईडीई (शायद ग्रहण जे 2 ईई, शायद कुछ और) को आग लगाना, थोड़ा जावा इंटरफ़ेस कोड करें, "WSDL में कनवर्ट करें" बटन दबाएं ... और देखें कि क्या होता है। फिर, अगर यह बार्फ़ नहीं है .. देखें कि परिणामी डब्लूएसडीएल ऐसा कुछ है जिसका उपयोग आप अपने सभी ग्राहकों (शायद एक्सिस, शायद एक्सिस 2, शायद नेट, शायद कुछ और पूरी तरह से) के साथ कर सकते हैं। सौभाग्य! – paulsm4
आईडी = 1 - कक्षा पुस्तक से आईडी या हैश मैप से इंटीजर है? – Ilya
आईडी कक्षा पुस्तक से है। मुझे नहीं पता कि एक्सएमएल प्रतिक्रिया कैसा दिखना चाहिए। लेकिन मैं उन उदाहरण फ़ील्ड को पुस्तक टैग में दिखाए गए पुस्तक ऑब्जेक्ट में चाहता हूं। – neo