दिलचस्प पोस्ट
Javafx टेबलव्यूले सभी कॉलम में डेटा नहीं दिखा रहा है रूबी: सरणी में एक डुप्लिकेट मान कैसे प्राप्त करें और वापस लौटें? जीमेल एसएमटीपी सर्वर का उपयोग करते समय से पता बदलने के लिए मैं एक एंड्रॉइड ऐप कैसे प्रोग्राम "रीस्टार्ट" करूँ? X 86 COM से x64 .NET एक्सेस करें अजगर और / या ऑपरेटर रिटर्न वैल्यू डाउनलोड और प्रिंटिंग से पीडीएफ फाइल को रोकें कैसे SIGABRT के कारण नीचे ट्रैक करने के लिए Monomorphism प्रतिबंध क्या है? कैसे एक साधारण ईमेल programatically भेजने के लिए? (यह करने का एक आसान तरीका है?) कोड jsFiddle में काम करते हैं लेकिन ब्राउज़र में नहीं दो के पायथन में पूरक एएसपी.नेट वेब एपीआई में कस्टम विधि नाम गिट एक साथ कई रिपॉजिटरी को एक साथ विंडोज पर गिट, "मेमोरी से बाहर – मॉलोक असफल"

साबुन क्लाइंट उदाहरण कार्य करना

मैं एक कामकाजी सेवा के साथ जावा में एक सरल (हा) SOAP उदाहरण ढूंढने की कोशिश कर रहा हूं, मुझे लगता है कि कोई भी काम नहीं कर रहा है।

मैंने इस उदाहरण से यह कोशिश की है, लेकिन यह सिर्फ काम नहीं कर रहा है, यह मुझे आगे स्लैश डाल करने के लिए कह रहा है, लेकिन यह वहां है और कुछ भी नहीं हो रहा है।

तो क्या कोई भी SOAP उदाहरण लिंक को जानता है, मैं डाउनलोड / अनुरोध और गड़बड़ कर सकता हूँ?

आपकी सहायता के लिए धन्यवाद.

वेब के समाधान से एकत्रित समाधान "साबुन क्लाइंट उदाहरण कार्य करना"

जावा में सरल SOAP क्लाइंट को लागू करने के लिए, आप SAAJ ढांचे का उपयोग कर सकते हैं (यह जेएसई 1.6 और उसके बाद के संस्करण के साथ भेज दिया गया है):

एसओएपी के साथ जावा (एसएएजे) के लिए अनुलग्नक एपीआई मुख्य रूप से किसी भी वेब सेवा एपीआई के दृश्यों के पीछे होता है जो SOAP अनुरोध / प्रतिक्रिया संदेश से सीधे निपटने के लिए उपयोग किया जाता है। यह डेवलपर्स को जेएडएस-डब्ल्यूएस के उपयोग के बजाय सीधे साबुन संदेश भेजने और प्राप्त करने की अनुमति देता है।

एसएएजी का उपयोग करते हुए एक SOAP वेब सेवा कॉल के एक काम के उदाहरण (इसे चलाएं!) के नीचे देखें यह इस वेब सेवा को कॉल करता है

import javax.xml.soap.*; public class SOAPClientSAAJ { // SAAJ - SOAP Client Testing public static void main(String args[]) { /* The example below requests from the Web Service at: http://www.webservicex.net/uszip.asmx?op=GetInfoByCity To call other WS, change the parameters below, which are: - the SOAP Endpoint URL (that is, where the service is responding from) - the SOAP Action Also change the contents of the method createSoapEnvelope() in this class. It constructs the inner part of the SOAP envelope that is actually sent. */ String soapEndpointUrl = "http://www.webservicex.net/uszip.asmx"; String soapAction = "http://www.webserviceX.NET/GetInfoByCity"; callSoapWebService(soapEndpointUrl, soapAction); } private static void createSoapEnvelope(SOAPMessage soapMessage) throws SOAPException { SOAPPart soapPart = soapMessage.getSOAPPart(); String myNamespace = "myNamespace"; String myNamespaceURI = "http://www.webserviceX.NET"; // SOAP Envelope SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.addNamespaceDeclaration(myNamespace, myNamespaceURI); /* Constructed SOAP Request Message: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:myNamespace="http://www.webserviceX.NET"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <myNamespace:GetInfoByCity> <myNamespace:USCity>New York</myNamespace:USCity> </myNamespace:GetInfoByCity> </SOAP-ENV:Body> </SOAP-ENV:Envelope> */ // SOAP Body SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyElem = soapBody.addChildElement("GetInfoByCity", myNamespace); SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("USCity", myNamespace); soapBodyElem1.addTextNode("New York"); } private static void callSoapWebService(String soapEndpointUrl, String soapAction) { try { // Create SOAP Connection SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); // Send SOAP Message to SOAP Server SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(soapAction), soapEndpointUrl); // Print the SOAP Response System.out.println("Response SOAP Message:"); soapResponse.writeTo(System.out); System.out.println(); soapConnection.close(); } catch (Exception e) { System.err.println("\nError occurred while sending SOAP Request to Server!\nMake sure you have the correct endpoint URL and SOAPAction!\n"); e.printStackTrace(); } } private static SOAPMessage createSOAPRequest(String soapAction) throws Exception { MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); createSoapEnvelope(soapMessage); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", soapAction); soapMessage.saveChanges(); /* Print the request message, just for debugging purposes */ System.out.println("Request SOAP Message:"); soapMessage.writeTo(System.out); System.out.println("\n"); return soapMessage; } } 

हां, अगर आप डब्लूएसडीएल फ़ाइल प्राप्त कर सकते हैं, तो आप इकाई परीक्षण अनुरोधों के साथ उस सेवा की नकली सेवा को पूरा करने के लिए सोपुड़ी का उपयोग कर सकते हैं। मैंने इस का एक उदाहरण बनाया (मैवेन का उपयोग करके) कि आप कोशिश कर सकते हैं

इसके अलावा, यहां मुफ्त में वेबर्वर्विसेस की एक विशाल सूची है जो पोस्ट की गई है।

एडीडीसीयुएरियर की प्रतिक्रिया भयानक थी, मैं सिर्फ अगले कोड के साथ अपना स्पष्टीकरण बढ़ाता हूं, जहां आप देख सकते हैं कि XML तत्वों पर कैसे पुनरावृत्त होता है।

 public class SOAPClientSAAJ { public static void main(String args[]) throws Exception { // Create SOAP Connection SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance(); SOAPConnection soapConnection = soapConnectionFactory.createConnection(); // Send SOAP Message to SOAP Server String url = "http://ws.cdyne.com/emailverify/Emailvernotestemail.asmx"; SOAPMessage soapResponse = soapConnection.call(createSOAPRequest(), url); SOAPPart soapPart=soapResponse.getSOAPPart(); // SOAP Envelope SOAPEnvelope envelope=soapPart.getEnvelope(); SOAPBody soapBody = envelope.getBody(); @SuppressWarnings("unchecked") Iterator<Node> itr=soapBody.getChildElements(); while (itr.hasNext()) { Node node=(Node)itr.next(); if (node.getNodeType()==Node.ELEMENT_NODE) { System.out.println("reading Node.ELEMENT_NODE"); Element ele=(Element)node; System.out.println("Body childs : "+ele.getLocalName()); switch (ele.getNodeName()) { case "VerifyEmailResponse": NodeList statusNodeList = ele.getChildNodes(); for(int i=0;i<statusNodeList.getLength();i++){ Element emailResult = (Element) statusNodeList.item(i); System.out.println("VerifyEmailResponse childs : "+emailResult.getLocalName()); switch (emailResult.getNodeName()) { case "VerifyEmailResult": NodeList emailResultList = emailResult.getChildNodes(); for(int j=0;j<emailResultList.getLength();j++){ Element emailResponse = (Element) emailResultList.item(j); System.out.println("VerifyEmailResult childs : "+emailResponse.getLocalName()); switch (emailResponse.getNodeName()) { case "ResponseText": System.out.println(emailResponse.getTextContent()); break; case "ResponseCode": System.out.println(emailResponse.getTextContent()); break; case "LastMailServer": System.out.println(emailResponse.getTextContent()); break; case "GoodEmail": System.out.println(emailResponse.getTextContent()); default: break; } } break; default: break; } } break; default: break; } } else if (node.getNodeType()==Node.TEXT_NODE) { System.out.println("reading Node.TEXT_NODE"); //do nothing here most likely, as the response nearly never has mixed content type //this is just for your reference } } // print SOAP Response System.out.println("Response SOAP Message:"); soapResponse.writeTo(System.out); soapConnection.close(); } private static SOAPMessage createSOAPRequest() throws Exception { MessageFactory messageFactory = MessageFactory.newInstance(); SOAPMessage soapMessage = messageFactory.createMessage(); SOAPPart soapPart = soapMessage.getSOAPPart(); String serverURI = "http://ws.cdyne.com/"; // SOAP Envelope SOAPEnvelope envelope = soapPart.getEnvelope(); envelope.addNamespaceDeclaration("example", serverURI); /* Constructed SOAP Request Message: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:example="http://ws.cdyne.com/"> <SOAP-ENV:Header/> <SOAP-ENV:Body> <example:VerifyEmail> <example:email>mutantninja@gmail.com</example:email> <example:LicenseKey>123</example:LicenseKey> </example:VerifyEmail> </SOAP-ENV:Body> </SOAP-ENV:Envelope> */ // SOAP Body SOAPBody soapBody = envelope.getBody(); SOAPElement soapBodyElem = soapBody.addChildElement("VerifyEmail", "example"); SOAPElement soapBodyElem1 = soapBodyElem.addChildElement("email", "example"); soapBodyElem1.addTextNode("mutantninja@gmail.com"); SOAPElement soapBodyElem2 = soapBodyElem.addChildElement("LicenseKey", "example"); soapBodyElem2.addTextNode("123"); MimeHeaders headers = soapMessage.getMimeHeaders(); headers.addHeader("SOAPAction", serverURI + "VerifyEmail"); soapMessage.saveChanges(); /* Print the request message */ System.out.println("Request SOAP Message:"); soapMessage.writeTo(System.out); System.out.println(""); System.out.println("------"); return soapMessage; } 

}

डब्लूएसडीएल के मूल प्रमाणीकरण के लिए स्वीकृत उत्तर कोड एक त्रुटि उठाता है। इसके बजाय निम्नलिखित को आज़माएं

 Authenticator.setDefault(new Authenticator() { @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication("username","password".toCharArray()); } }); 
 String send = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + "<soap:Envelope xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">\n" + " <soap:Body>\n" + " </soap:Body>\n" + "</soap:Envelope>"; private static String getResponse(String send) throws Exception { String url = "https://api.comscore.com/KeyMeasures.asmx"; //endpoint String result = ""; String username="user_name"; String password="pass_word"; String[] command = {"curl", "-u", username+":"+password ,"-X", "POST", "-H", "Content-Type: text/xml", "-d", send, url}; ProcessBuilder process = new ProcessBuilder(command); Process p; try { p = process.start(); BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); StringBuilder builder = new StringBuilder(); String line = null; while ( (line = reader.readLine()) != null) { builder.append(line); builder.append(System.getProperty("line.separator")); } result = builder.toString(); } catch (IOException e) { System.out.print("error"); e.printStackTrace(); } return result; }