• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Web Services
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Web Services


  • Subject: Re: Web Services
  • From: Benjamin Levy <email@hidden>
  • Date: Mon, 14 Mar 2005 18:50:10 -0500

Your WSDL looks about the same as mine except I don't ever use xsd:dateTime and all of my ints are xsd:int and not soapenc:int.

The response from Axis I looks a little bit different. This is a result with an array of a complex datatype -

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
<soapenv:Body>
<ns1:ppcGetSyncActionsResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns1="http://soap.my.service";>
<ns1:ppcGetSyncActionsReturn xsi:type="soapenc:Array" soapenc:arrayType="ns2:ppcSync[1]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns2="urn:myservice">
<item href="#id0"/>
</ns1:ppcGetSyncActionsReturn>
</ns1:ppcGetSyncActionsResponse>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns3:ppcSync" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"; xmlns:ns3="urn:myservice">
<action xsi:type="xsd:int">0</action>
<name xsi:type="xsd:string">name</name>
<path xsi:type="xsd:string">path</path>
<size xsi:type="xsd:int">0</size>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>


I set up each call with something like this (this is not the call the generates the above response) -

ppcGetID* getID = [[ppcGetID alloc] init];
[getID setParameters:authInfo
in_shared:NO];
[getID setCallBack:self selector:@selector(getIDCompleted:)];
[getID scheduleOnRunLoop:(NSRunLoop*) CFRunLoopGetCurrent() mode: (NSString*) kCFRunLoopDefaultMode];


And then my callback looks something like this -

- (void)getIDCompleted:(ppcGetID*)getID
{
    if ([getID isFault]) {

NSMutableString* faultString = [[NSMutableString alloc] initWithString:[getID faultString]];
[faultString replaceOccurrencesOfString:@"java.rmi.RemoteException: " withString:@""
options:NSAnchoredSearch range:NSMakeRange( 0, [faultString length] )];


[statusField setStringValue:[NSString stringWithFormat:@"Error getting account information\n\n%@", faultString]];

        [getID release];
        [faultString release];

		// ... more here ...

    } else {

        NSDictionary* result = [[getID resultValue] retain];

        [getID release];

        [statusField setStringValue:@""];

        NSString* value1 = [result objectForKey:@"value1"];
	// ... etc ...

        [ppcReg release];

	// ... more here ...
    }
}

On Mar 14, 2005, at 4:42 PM, Fred McCann wrote:

I could get over using NSDictionaries. It's not perfect but it should work. The problems I'm seeing with Core Web Services is that it's not even getting the dictionaries right.


For example, I made a simple java bean and exposed it with Apache Axis:


    <complexType name="Widget">
    <sequence>
      <element name="code" nillable="true" type="soapenc:string"/>
      <element name="color" nillable="true" type="soapenc:string"/>
      <element name="count" type="xsd:int"/>
      <element name="date" nillable="true" type="xsd:dateTime"/>
      <element name="description" nillable="true" type="soapenc:string"/>
      <element name="name" nillable="true" type="soapenc:string"/>
      <element name="serial" nillable="true" type="soapenc:int"/>
    </sequence>
    </complexType>


 When the application makes a response for a specific Widget, it gets
 this:

 HTTP/1.1 200 OK
 Content-Type: text/xml;charset=utf-8
 Date: Fri, 11 Mar 2005 23:59:16 GMT
 Server: Apache-Coyote/1.1
 Connection: close

 <soapenv:envelope
 xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
 xmlns:xsd="http://www.w3.org/2001/XMLSchema";
 xmlns:xsi="">
    <soapenv:body>
        <ns1:loadresponse
 soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/";
 xmlns:ns1="">
            <loadreturn href="#id0" />
        </ns1:loadresponse>
        <multiref id="id0" soapenc:root="0"
 soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/";
 xsi:type="ns2:Widget"
 xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
 xmlns:ns2="urn:wstest">
            <code xsi:type="soapenc:string">
                WI2314</code>
            <color xsi:type="soapenc:string">
                blue
            </color>
            <count href="#id1" />
            <date xsi:type="xsd:dateTime">
                2004-12-12T05:00:00.000Z
            </date>
            <description xsi:type="soapenc:string">
                Foo barr
            </description>
            <name xsi:type="soapenc:string">
                Tape Recorder
            </name>
            <serial href="#id2" />
        </multiref>
        <multiref id="id2" soapenc:root="0"
 soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/";
 xsi:type="soapenc:int"
 xmlns:soapenc="">
            56
        </multiref>
        <multiref id="id1" soapenc:root="0"
 soapenv:encodingstyle="http://schemas.xmlsoap.org/soap/encoding/";
 xsi:type="xsd:int"
 xmlns:soapenc="">
            12
        </multiref>
    </soapenv:body>
 </soapenv:envelope>


The NSDictionary that I get back from Core Webservices has nil values for all the int types. I have no clue what to do about that. Also, I had issues in another test attempting to send long types. How are you getting dictionaries?




--- Ben Levy :: Technology Development Manager, GoKnow, Inc. direct line - 734.929.6605 :: http://www.goknow.com/

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Cocoa-dev mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


References: 
 >Re: Web Services (From: Fred McCann <email@hidden>)

  • Prev by Date: Re: Building NSObject question/Help
  • Next by Date: Re: Dumb newbie question about objects and scalars
  • Previous by thread: Re: Web Services
  • Next by thread: Re: Web Services
  • Index(es):
    • Date
    • Thread