jzhone / wsdl2objc

Automatically exported from code.google.com/p/wsdl2objc
MIT License
0 stars 0 forks source link

arrays are not deserializing properly #124

Open GoogleCodeExporter opened 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Generate the code with this ws: http://aspspider.org/Jouret/Service.asmx?wsdl
2. Use this sample code to run it:
    ServiceSoapBinding *binding = [[Service ServiceSoapBinding] initWithAddress:@"http://aspspider.org/Jouret/Service.asmx"];
    binding.logXMLInOut = YES;  // to get logging to the console.

    Service_SynGET *request = [[Service_SynGET alloc] init];
    request.deviceId = [NSNumber numberWithInt:42];
    request.userName = @"bulk";
    request.password = @"bulk";

    ServiceSoapBindingResponse *resp = [binding SynGETUsingParameters:request];
    for (id mine in resp.bodyParts)
    {
        if ([mine isKindOfClass:[Service_ArrayOfArrayOfKnoop class]])
        {
            NSLog(@"hellow");
        }
    }
3. Have patience.. and look at the console what happens. After 5 minutes he is 
printing the results. After that you get an error: 
'NSInvalidArgumentException', reason: '*** +[Put deserializeNode:]: 
unrecognized selector sent to class 0x1212f0'

What is the expected output? No error and let me into the array.

What do you see instead? Nothing... just the error

What version of the product are you using? On what operating system? 7.0 osx 
10.6.5

Please provide any additional information below.

Original issue reported on code.google.com by peterjou...@gmail.com on 16 Dec 2010 at 12:44

GoogleCodeExporter commented 9 years ago
I have a different issue on arrays.

The XML is received correctly but the structure array of reservation will 
return a 
result element that contains the actual return element. 

The wsdl2objc generator will only examine the children of the body-node and 
search for the Return Element. Yet, it finds only the result element.

The result element has no namespace attached and thus the body->ns is nil. Thus 
the parser bails out at this position.

If have manually added a workaround, that is not yet working, but I am on my 
way :-) for one method to dive into the next level as soon as the RESULT has 
been found. But the resulting array structure has no accessor generated, so I 
cannot find any results.

Another issue seems to be, that the system will not properly work with a 
multiref response and will fail with the multiref response in the namespace 
comparision with a 0x0 pointer on the ns. (it finds the multiref node, that is 
not expected and fails to compare namespaces as multiref does not have a 
namespace attached).

Original comment by ths...@googlemail.com on 10 Jan 2011 at 2:35

Attachments:

GoogleCodeExporter commented 9 years ago
Thsf71, can i use your workaround for my problem? I hope so. Can you take a 
look at my webservice here above? Thx

Original comment by peterjou...@gmail.com on 10 Jan 2011 at 3:35

GoogleCodeExporter commented 9 years ago
No one any idea?

Original comment by peterjou...@gmail.com on 24 Jan 2011 at 11:59

GoogleCodeExporter commented 9 years ago
Hi All,
I am Getting this exception while connecting to SoapWS from Objective C Client 
Using WSDL2OBJC.

[ERROR] Exception occurred while trying to invoke service method Authentication
org.apache.axis2.AxisFault: namespace mismatch require 
http://ws.apache.org/axis2 found none
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:172)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)
[ERROR] namespace mismatch require http://ws.apache.org/axis2 found none
org.apache.axis2.AxisFault: namespace mismatch require 
http://ws.apache.org/axis2 found none
    at org.apache.axis2.rpc.receivers.RPCUtil.invokeServiceClass(RPCUtil.java:172)
    at org.apache.axis2.rpc.receivers.RPCMessageReceiver.invokeBusinessLogic(RPCMessageReceiver.java:102)
    at org.apache.axis2.receivers.AbstractInOutMessageReceiver.invokeBusinessLogic(AbstractInOutMessageReceiver.java:40)
    at org.apache.axis2.receivers.AbstractMessageReceiver.receive(AbstractMessageReceiver.java:100)
    at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:176)
    at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:275)
    at org.apache.axis2.transport.http.AxisServlet.doPost(AxisServlet.java:133)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:619)

Original comment by rausha...@gmail.com on 29 Jul 2013 at 10:31