You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by "Chuck Williams (JIRA)" <ji...@apache.org> on 2006/04/29 03:47:37 UTC

[jira] Updated: (AXIS2-632) get errors trying to parse valid response

     [ http://issues.apache.org/jira/browse/AXIS2-632?page=all ]

Chuck Williams updated AXIS2-632:
---------------------------------

    Attachment: WhiteSpaceAndExtensionTypes.zip

The attached archive has a fix for the whitespace problem.  This is serious as it causes generated parsing code to fail if there is whitespace between array element properties (and possibly other cases).  I beleive the fix should be included in the 1.0 release.

There is only one changed file:  ADBBeanTemplate.xsl.  The archive includes a patch and the new version of the file.

Also included is some simple test code in Main.java that reproduces this issue, verifying the whitespace problem is fixed but that the extension types issue remains.  The test case requires the generated classes from enterprise.wsdl as described by the submitter, except that I also used -ss to get the server side code.  This is so classes are unwrapped.  Else, the Stub is a 5 MB source file that breaks the netbeans source debugger and even some operations in emacs!



> get errors trying to parse valid response
> -----------------------------------------
>
>          Key: AXIS2-632
>          URL: http://issues.apache.org/jira/browse/AXIS2-632
>      Project: Apache Axis 2.0 (Axis2)
>         Type: Bug

>   Components: databinding
>  Environment: Axis2.0 RC4, JDK 1.5.06, WinXP
>     Reporter: Simon Fell
>     Priority: Blocker
>  Attachments: WhiteSpaceAndExtensionTypes.zip
>
> A valid response from the query call (wsdl is the enterprise wsdl that's now part of the tests) fails to be de-serialized with an error.
> Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: Unexpected subelement Name
> 	at org.apache.axis2.SforceServiceStub.fromOM(SforceServiceStub.java:59718)
> 	at org.apache.axis2.SforceServiceStub.query(SforceServiceStub.java:2545)
> 	at client.main(client.java:19)
> Caused by: java.lang.RuntimeException: Unexpected subelement Name
> 	at org.apache.axis2.SforceServiceStub$QueryResult$Factory.parse(SforceServiceStub.java:57735)
> 	at org.apache.axis2.SforceServiceStub$QueryResponse$Factory.parse(SforceServiceStub.java:20706)
> 	at org.apache.axis2.SforceServiceStub.fromOM(SforceServiceStub.java:59594)
> 	... 2 more
> Here's the response msg it fails to deserialize
> <?xml version="1.0" encoding="UTF-8"?><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" xmlns="urn:enterprise.soap.sforce.com" xmlns:sf="urn:sobject.enterprise.soap.sforce.com"><soapenv:Body><queryResponse><result><done>true</done><queryLocator xsi:nil="true"/><records xsi:type="sf:Account"><sf:Id>0013000000Bnr1qAAB</sf:Id><sf:AccountNumber>axis2Test</sf:AccountNumber><sf:Name>New Account 2</sf:Name></records><records xsi:type="sf:Account"><sf:Id>0013000000BnspUAAR</sf:Id><sf:AccountNumber>axis2Test</sf:AccountNumber><sf:Name>New Account 1</sf:Name></records><size>2</size></result></queryResponse></soapenv:Body></soapenv:Envelope>
> the client stub was generated with WSDL2Java -s -u -uri enterprise.wsdl
> The test code is
> 		SforceServiceStub stub = new SforceServiceStub();
> 		SforceServiceStub.Login l = new SforceServiceStub.Login();
> 		l.setUsername("*username*");
> 		l.setPassword("*password*");
> 		SforceServiceStub.LoginResponse lr = stub.login(l);
> 		
> 		SforceServiceStub.SessionHeader sh = new SforceServiceStub.SessionHeader();
> 		sh.setSessionId(lr.getResult().getSessionId());
> 		stub = new SforceServiceStub(lr.getResult().getServerUrl());
> 		
> 		SforceServiceStub.Query q = new SforceServiceStub.Query();
> 		q.setQueryString("select id, name, AccountNumber from Account where AccountNumber='axis2Test'");
> 		SforceServiceStub.QueryResponse qr = stub.query(q, sh, null);
> 		
> 		System.out.println("query returned " + qr.getResult().getSize() + " rows");
> 		
> 		for(SforceServiceStub.SObject o : qr.getResult().getRecords()) {
> 			SforceServiceStub.Account a = (SforceServiceStub.Account)o;
> 			System.out.println(a.getId() + " " + a.getName() + " " + a.getAccountNumber());
> 		}
> Also the generated stub has getId() returning an OMElement, and not a string.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira