On Tuesday, December 2, 2014 6:45:04 AM UTC-8, Pengfei Yu wrote:
>
> Cool! Thanks very much for sharing, Dave!
>
My pay-forward. Glad it helped.
/dps
>
> On Tuesday, November 25, 2014 2:26:47 PM UTC-5, Dave S wrote:
>>
>>
>>
>> On Monday, November 24, 2014 12:24:25 PM UTC-8, Pengfei Yu wrote:
>>>
>>> Hi Dave,
>>>
>>> Thanks very much for your reply! Could you give a more detailed example
>>> for an implementation for Java client? A block of java codes from your Java
>>> client talking to web2py service will be perfect. Even with the most simple
>>> example from the web2py's SOAP service document is good enough.
>>>
>>>>
>>>>
>> The usage looks something like this:
>> try {
>> String url = "http://" + ServerIP + "/" +
>> AppID + "/default/call/soap";
>> // Create SOAP Connection
>> SOAPConnectionFactory soapConnectionFactory =
>> SOAPConnectionFactory.newInstance();
>> SOAPConnection soapConnection = soapConnectionFactory.
>> createConnection();
>>
>> // Send SOAP Message to SOAP Server
>> SOAPMessage soapResponse = soapConnection.call(
>> createSOAPRequest(tdName, tdiskStatus),
>> url);
>>
>> // Process the SOAP Response
>> printSOAPResponse(soapResponse);
>>
>> soapConnection.close();
>> } catch (SOAPException ex) {
>> System.out.println("main: soap " + ex.getMessage());
>> Logger.getLogger(LogTDSClient.class.getName()).log(Level.SEVERE,
>> null, ex);
>> } catch (UnsupportedOperationException ex) {
>> System.out.println("main: uns" + ex.getMessage());
>> Logger.getLogger(LogTDSClient.class.getName()).log(Level.SEVERE,
>> null, ex);
>> } catch (Exception ex) {
>> System.out.println("main: oops " + ex.getMessage());
>> Logger.getLogger(LogTDSClient.class.getName()).log(Level.SEVERE,
>> null, ex);
>> }
>>
>>
>> and the interesting part:
>>
>> private static SOAPMessage createSOAPRequest(String tName, String
>> tStatus) throws Exception {
>> MessageFactory messageFactory = MessageFactory.newInstance();
>> SOAPMessage soapMessage = messageFactory.createMessage();
>> SOAPPart soapPart = soapMessage.getSOAPPart();
>>
>> String serverURI = "http://your-url:here";
>> String authHack = "ZGxv-usual-base64stuff";
>>
>>
>> // SOAP Envelope
>> SOAPEnvelope envelope = soapPart.getEnvelope();
>> // your-url:here corresponds to serverIP above
>> envelope.addNamespaceDeclaration("ns0",
>> "http://your-url:here/AppID/default/call/soap");
>>
>>
>>
>> // SOAP Body
>> SOAPBody soapBody = envelope.getBody();
>> SOAPElement soapBodyElem = soapBody.addChildElement(
>> "YourSoapFunc", "ns0");
>> SOAPElement soapBodyElem1 = soapBodyElem.addChildElement(
>> "YourSoapParam");
>> soapBodyElem1.addTextNode("YourSoapParamString");
>>
>>
>> MimeHeaders headers = soapMessage.getMimeHeaders();
>> headers.addHeader("SOAPACTION", "");
>> headers.addHeader("Authorization", "Basic " + authHack);
>> Iterator outHeaders = headers.getAllHeaders();
>> while (false & outHeaders.hasNext()) {
>> MimeHeader outH = (MimeHeader) outHeaders.next();
>> // System.out.println(outH.getName() + " -- " +outH.getValue());
>> }
>>
>> soapMessage.saveChanges();
>>
>> /* Print the request message */
>> if (Boolean.FALSE) {
>> System.out.print("Request SOAP Message = ");
>> soapMessage.writeTo(System.out);
>> System.out.println();
>> }
>>
>> return soapMessage;
>> }
>>
>>
>> It's pretty simple. You might need to tweak the return value handling,
>> because that part wasn't very important to my usage.
>>
>> (Grrr -- the GG message editor gets funky when I put in a code block, at
>> least in this browser.)
>>
>>
>> Good luck.
>>
>> /dps
>>
>>
>>
>>
>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.