You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Dan Washusen <da...@gmail.com> on 2006/05/12 04:21:35 UTC

Axis2: Unexpected subelement fees

Hi All,
I'm getting a weird error and I was hoping someone could tell me what I'm
doing wrong because I have no idea what's going on...

I've generated a client using the
org.apache.axis2.tool.ant.AntCodegenTaskclass and filled in the todos
in the generated test case, however when I run
the test Axis spits out the following error:

>     [junit] Testcase: testprocess(
> org.apache.axis2.RetrieveClientDetailsTest):  Caused an ERROR
>     [junit] java.lang.RuntimeException: Unexpected subelement fees
>     [junit] java.lang.RuntimeException: java.lang.RuntimeException:
> Unexpected subelement fees
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java:345)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.process(
> RetrieveClientDetailsStub.java:114)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsTest.testprocess(
> RetrieveClientDetailsTest.java:24)
>     [junit] Caused by: java.lang.RuntimeException: Unexpected subelement
> fees
>     [junit]     at
> au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(
> ClientDetailsType.java:579)
>     [junit]     at
> au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
> (RetrieveClientDetailsProcessResponse.java:149)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java:337)
>     [junit]     ... 17 more


My XSD looks like this (well here's the relevant bit of it):

> <xsd:complexType name="ClientDetailsType">
>     <xsd:sequence>
>       <xsd:element name="partyId" type="xsd:long"/>
>       <xsd:element name="externalId" type="xsd:string"/>
>       <xsd:element name="description" type="xsd:string" nillable="true"/>
>       <xsd:element name="company" type="xsd:string" nillable="true"/>
>       <xsd:element name="abnacn" type="xsd:string" nillable="true"/>
>       <xsd:element name="cmtAccount1Id" type="xsd:long" nillable="true"/>
>       <xsd:element name="cmtAccount2Id" type="xsd:long" nillable="true"/>
>       <xsd:element name="contact" type="ContactType" nillable="true"
> minOccurs="1" maxOccurs="unbounded"/>
>       <xsd:element name="address" type="SiteType" nillable="true"
> minOccurs="1" maxOccurs="unbounded"/>
>       <xsd:element name="fees" type="ClientFeesType"/>
>       <xsd:element name="lastStatement" type="xsd:date" nillable="true"/>
>       <xsd:element name="status" type="status" nillable="true"/>
>     </xsd:sequence>
>   </xsd:complexType>
>   <xsd:complexType name="ClientFeesType">
>     <xsd:sequence>
>       <xsd:element name="lineFee" type="xsd:decimal" nillable="true"/>
>       <xsd:element name="shortFee" type="xsd:decimal" nillable="true"/>
>       <xsd:element name="brokerage" type="xsd:decimal" nillable="true"/>
>       <xsd:element name="interestRate" type="xsd:decimal"
> nillable="true"/>
>       <xsd:element name="rebate" type="xsd:decimal" nillable="true"/>
>     </xsd:sequence>
>   </xsd:complexType>
>


 And the SOAP envelope looks like this:

> <RetrieveClientDetailsProcessResponse><client:StatusMsg><ns1:Status>0</
> ns1:Status>
> <ns1:StatusDetailedMsg/>
> </client:StatusMsg>
> <client:ClientDetails><ns1:partyId>13</ns1:partyId>
> <ns1:externalId>TEST1</ns1:externalId>
> <ns1:description>Client 1</ns1:description>
> <ns1:company/>
> <ns1:abnacn/>
> <ns1:fees><ns1:lineFee>7.5</ns1:lineFee>
> <ns1:shortFee>10</ns1:shortFee>
> <ns1:brokerage/>
> <ns1:interestRate>5.75</ns1:interestRate>
> <ns1:rebate/>
> </ns1:fees>
> <ns1:lastStatement/>
> <ns1:status>ACTIVE</ns1:status>
> <ns1:contact primary="*Y*" ><ns1:contactId>2529</ns1:contactId>
> <ns1:partyId>13</ns1:partyId>
> <ns1:title>Lord</ns1:title>
> <ns1:given/>
> <ns1:surname>Dorman</ns1:surname>
> <ns1:phone1>5555 5555</ns1:phone1>
> <ns1:phone2>5555 5554</ns1:phone2>
> <ns1:fax/>
> <ns1:mobile>9999 9999 99</ns1:mobile>
> <ns1:email>foo@bar.com</ns1:email>
> </ns1:contact>
> <ns1:address primary="*Y*" ><ns1:siteId>1717</ns1:siteId>
> <ns1:partyId>13</ns1:partyId>
> <ns1:description>asdfasdf</ns1:description>
> <ns1:line1/>
> <ns1:line2>1 Elizabeth Street</ns1:line2>
> <ns1:city>Sydney</ns1:city>
> <ns1:state>NSW</ns1:state>
> <ns1:postcode>2000</ns1:postcode>
> <ns1:country>AU</ns1:country>
> </ns1:address>
> </client:ClientDetails>
> </RetrieveClientDetailsProcessResponse>
>

I found a Jira issue that seems to be related but I don't really follow the
comments:
http://issues.apache.org/jira/browse/AXIS2-632?page=comments#action_12377038

Any ideas?

Cheers,
Dan

p.s. I'm running Axis2 1.0 on a Windows XP machine with JDK 1.4.2_11.

Re: Axis2: Unexpected subelement fees

Posted by Dan Washusen <da...@gmail.com>.
Here is the wsdl2java call:
<wsdl2java output="${target.dir}/output" testcase="true"
unpackClasses="true" wsdlfilename="
http://ws008:9700/orabpel/default/RetrieveClientDetails/1.0/RetrieveClientDetails?wsdl"
/>

I've also attached the wsdl...

Cheers,
Dan



On 5/12/06, robert lazarski <ro...@gmail.com> wrote:
>
> Even though it may be big, could you attach your entire wsdl ?  It also
> may help us figure out the problem is you show us you params you passed to
> wsdl2java. One other thing: Is the client request making it to the server,
> and perhaps returning a reponse the client can't parse? (late here, sorry if
> I'm not making sense ;-) )
>
> Robert
> http://www.braziloutsource.com/
>
>
> On 5/11/06, Dan Washusen <da...@gmail.com> wrote:
> >
> > Hi All,
> > I'm getting a weird error and I was hoping someone could tell me what
> > I'm doing wrong because I have no idea what's going on...
> >
> > I've generated a client using the
> > org.apache.axis2.tool.ant.AntCodegenTask class and filled in the todos
> > in the generated test case, however when I run the test Axis spits out the
> > following error:
> >
> > >     [junit] Testcase: testprocess(
> > > org.apache.axis2.RetrieveClientDetailsTest):  Caused an ERROR
> > >     [junit] java.lang.RuntimeException: Unexpected subelement fees
> > >     [junit] java.lang.RuntimeException: java.lang.RuntimeException:
> > > Unexpected subelement fees
> > >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM (
> > > RetrieveClientDetailsStub.java:345)
> > >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.process(
> > > RetrieveClientDetailsStub.java:114)
> > >     [junit]     at
> > > org.apache.axis2.RetrieveClientDetailsTest.testprocess (
> > > RetrieveClientDetailsTest.java:24)
> > >     [junit] Caused by: java.lang.RuntimeException: Unexpected
> > > subelement fees
> > >     [junit]     at
> > > au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(
> > > ClientDetailsType.java :579)
> > >     [junit]     at
> > > au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
> > > (RetrieveClientDetailsProcessResponse.java:149)
> > >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM (
> > > RetrieveClientDetailsStub.java:337)
> > >     [junit]     ... 17 more
> >
> >
> > My XSD looks like this (well here's the relevant bit of it):
> >
> > > <xsd:complexType name="ClientDetailsType">
> > >     <xsd:sequence>
> > >       <xsd:element name="partyId" type="xsd:long"/>
> > >       <xsd:element name="externalId" type="xsd:string"/>
> > >       <xsd:element name="description" type="xsd:string"
> > > nillable="true"/>
> > >       <xsd:element name="company" type="xsd:string" nillable="true"/>
> > >       <xsd:element name="abnacn" type="xsd:string" nillable="true"/>
> > >       <xsd:element name="cmtAccount1Id" type="xsd:long"
> > > nillable="true"/>
> > >       <xsd:element name="cmtAccount2Id" type="xsd:long"
> > > nillable="true"/>
> > >       <xsd:element name="contact" type="ContactType" nillable="true"
> > > minOccurs="1" maxOccurs="unbounded"/>
> > >       <xsd:element name="address" type="SiteType" nillable="true"
> > > minOccurs="1" maxOccurs="unbounded"/>
> > >       <xsd:element name="fees" type="ClientFeesType"/>
> > >       <xsd:element name="lastStatement" type="xsd:date"
> > > nillable="true"/>
> > >       <xsd:element name="status" type="status" nillable="true"/>
> > >     </xsd:sequence>
> > >   </xsd:complexType>
> > >   <xsd:complexType name="ClientFeesType">
> > >     <xsd:sequence>
> > >       <xsd:element name="lineFee" type="xsd:decimal" nillable="true"/>
> > >
> > >       <xsd:element name="shortFee" type="xsd:decimal"
> > > nillable="true"/>
> > >       <xsd:element name="brokerage" type="xsd:decimal"
> > > nillable="true"/>
> > >       <xsd:element name="interestRate" type="xsd:decimal"
> > > nillable="true"/>
> > >       <xsd:element name="rebate" type="xsd:decimal" nillable="true"/>
> > >     </xsd:sequence>
> > >   </xsd:complexType>
> > >
> >
> >
> >  And the SOAP envelope looks like this:
> >
> > > <RetrieveClientDetailsProcessResponse><client:StatusMsg ><ns1:Status>0
> > > </ns1:Status >
> > > <ns1:StatusDetailedMsg/>
> > > </client:StatusMsg >
> > > <client:ClientDetails><ns1:partyId >13</ns1:partyId>
> > > <ns1:externalId >TEST1</ns1:externalId>
> > > <ns1:description >Client 1</ns1:description>
> > > <ns1:company />
> > > <ns1:abnacn/>
> > > <ns1:fees ><ns1:lineFee>7.5</ns1:lineFee >
> > > <ns1:shortFee>10</ns1:shortFee >
> > > <ns1:brokerage/>
> > > <ns1:interestRate >5.75</ns1:interestRate>
> > > <ns1:rebate />
> > > </ns1:fees>
> > > <ns1:lastStatement />
> > > <ns1:status>ACTIVE</ns1:status >
> > > <ns1:contact primary="*Y*" ><ns1:contactId>2529</ns1:contactId >
> > > <ns1:partyId>13</ns1:partyId >
> > > <ns1:title>Lord</ns1:title >
> > > <ns1:given/>
> > > <ns1:surname >Dorman</ns1:surname>
> > > <ns1:phone1 >5555 5555</ns1:phone1>
> > > <ns1:phone2 >5555 5554</ns1:phone2>
> > > <ns1:fax />
> > > <ns1:mobile>9999 9999 99</ ns1:mobile>
> > > <ns1:email>foo@bar.com </ns1:email>
> > > </ns1:contact>
> > > <ns1:address primary="*Y*" ><ns1:siteId>1717</ns1:siteId >
> > > <ns1:partyId>13</ns1:partyId >
> > > <ns1:description>asdfasdf</ns1:description >
> > > <ns1:line1/>
> > > <ns1:line2>1 Elizabeth Street</ns1:line2>
> > > <ns1:city>Sydney</ns1:city>
> > > <ns1:state>NSW</ns1:state>
> > > <ns1:postcode>2000</ns1:postcode>
> > > <ns1:country>AU</ns1:country>
> > > </ ns1:address>
> > > </client:ClientDetails>
> > > </RetrieveClientDetailsProcessResponse>
> > >
> >
> > I found a Jira issue that seems to be related but I don't really follow
> > the comments:
> > http://issues.apache.org/jira/browse/AXIS2-632?page=comments#action_12377038
> >
> >
> > Any ideas?
> >
> > Cheers,
> > Dan
> >
> > p.s. I'm running Axis2 1.0 on a Windows XP machine with JDK 1.4.2_11.
> >
> >
> >
>

Re: Axis2: Unexpected subelement fees

Posted by robert lazarski <ro...@gmail.com>.
Even though it may be big, could you attach your entire wsdl ?  It also may
help us figure out the problem is you show us you params you passed to
wsdl2java. One other thing: Is the client request making it to the server,
and perhaps returning a reponse the client can't parse? (late here, sorry if
I'm not making sense ;-) )

Robert
http://www.braziloutsource.com/

On 5/11/06, Dan Washusen <da...@gmail.com> wrote:
>
> Hi All,
> I'm getting a weird error and I was hoping someone could tell me what I'm
> doing wrong because I have no idea what's going on...
>
> I've generated a client using the org.apache.axis2.tool.ant.AntCodegenTaskclass and filled in the todos in the generated test case, however when I run
> the test Axis spits out the following error:
>
> >     [junit] Testcase: testprocess(
> > org.apache.axis2.RetrieveClientDetailsTest):  Caused an ERROR
> >     [junit] java.lang.RuntimeException: Unexpected subelement fees
> >     [junit] java.lang.RuntimeException: java.lang.RuntimeException:
> > Unexpected subelement fees
> >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM (
> > RetrieveClientDetailsStub.java:345)
> >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.process(
> > RetrieveClientDetailsStub.java:114)
> >     [junit]     at
> > org.apache.axis2.RetrieveClientDetailsTest.testprocess (
> > RetrieveClientDetailsTest.java:24)
> >     [junit] Caused by: java.lang.RuntimeException: Unexpected subelement
> > fees
> >     [junit]     at
> > au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(
> > ClientDetailsType.java :579)
> >     [junit]     at
> > au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
> > (RetrieveClientDetailsProcessResponse.java:149)
> >     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM (
> > RetrieveClientDetailsStub.java:337)
> >     [junit]     ... 17 more
>
>
> My XSD looks like this (well here's the relevant bit of it):
>
> > <xsd:complexType name="ClientDetailsType">
> >     <xsd:sequence>
> >       <xsd:element name="partyId" type="xsd:long"/>
> >       <xsd:element name="externalId" type="xsd:string"/>
> >       <xsd:element name="description" type="xsd:string"
> > nillable="true"/>
> >       <xsd:element name="company" type="xsd:string" nillable="true"/>
> >       <xsd:element name="abnacn" type="xsd:string" nillable="true"/>
> >       <xsd:element name="cmtAccount1Id" type="xsd:long"
> > nillable="true"/>
> >       <xsd:element name="cmtAccount2Id" type="xsd:long"
> > nillable="true"/>
> >       <xsd:element name="contact" type="ContactType" nillable="true"
> > minOccurs="1" maxOccurs="unbounded"/>
> >       <xsd:element name="address" type="SiteType" nillable="true"
> > minOccurs="1" maxOccurs="unbounded"/>
> >       <xsd:element name="fees" type="ClientFeesType"/>
> >       <xsd:element name="lastStatement" type="xsd:date"
> > nillable="true"/>
> >       <xsd:element name="status" type="status" nillable="true"/>
> >     </xsd:sequence>
> >   </xsd:complexType>
> >   <xsd:complexType name="ClientFeesType">
> >     <xsd:sequence>
> >       <xsd:element name="lineFee" type="xsd:decimal" nillable="true"/>
> >       <xsd:element name="shortFee" type="xsd:decimal" nillable="true"/>
> >       <xsd:element name="brokerage" type="xsd:decimal" nillable="true"/>
> >
> >       <xsd:element name="interestRate" type="xsd:decimal"
> > nillable="true"/>
> >       <xsd:element name="rebate" type="xsd:decimal" nillable="true"/>
> >     </xsd:sequence>
> >   </xsd:complexType>
> >
>
>
>  And the SOAP envelope looks like this:
>
> > <RetrieveClientDetailsProcessResponse><client:StatusMsg ><ns1:Status>0</
> > ns1:Status >
> > <ns1:StatusDetailedMsg/>
> > </client:StatusMsg >
> > <client:ClientDetails><ns1:partyId >13</ns1:partyId>
> > <ns1:externalId >TEST1</ns1:externalId>
> > <ns1:description >Client 1</ns1:description>
> > <ns1:company />
> > <ns1:abnacn/>
> > <ns1:fees ><ns1:lineFee>7.5</ns1:lineFee >
> > <ns1:shortFee>10</ns1:shortFee >
> > <ns1:brokerage/>
> > <ns1:interestRate >5.75</ns1:interestRate>
> > <ns1:rebate />
> > </ns1:fees>
> > <ns1:lastStatement />
> > <ns1:status>ACTIVE</ns1:status >
> > <ns1:contact primary="*Y*" ><ns1:contactId>2529</ns1:contactId >
> > <ns1:partyId>13</ns1:partyId >
> > <ns1:title>Lord</ns1:title >
> > <ns1:given/>
> > <ns1:surname >Dorman</ns1:surname>
> > <ns1:phone1 >5555 5555</ns1:phone1>
> > <ns1:phone2 >5555 5554</ns1:phone2>
> > <ns1:fax />
> > <ns1:mobile>9999 9999 99</ ns1:mobile>
> > <ns1:email>foo@bar.com </ns1:email>
> > </ns1:contact>
> > <ns1:address primary="*Y*" ><ns1:siteId>1717</ns1:siteId >
> > <ns1:partyId>13</ns1:partyId >
> > <ns1:description>asdfasdf</ns1:description >
> > <ns1:line1/>
> > <ns1:line2>1 Elizabeth Street</ns1:line2>
> > <ns1:city>Sydney</ns1:city>
> > <ns1:state>NSW</ns1:state>
> > <ns1:postcode>2000</ns1:postcode>
> > <ns1:country>AU</ns1:country>
> > </ ns1:address>
> > </client:ClientDetails>
> > </RetrieveClientDetailsProcessResponse>
> >
>
> I found a Jira issue that seems to be related but I don't really follow
> the comments:
>
> http://issues.apache.org/jira/browse/AXIS2-632?page=comments#action_12377038
>
> Any ideas?
>
> Cheers,
> Dan
>
> p.s. I'm running Axis2 1.0 on a Windows XP machine with JDK 1.4.2_11.
>
>
>

Re: Axis2: Unexpected subelement fees

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
You have the element defined with nillable="true", so the correct way to 
do this is <ns1:brokerage xsi:nil="true"/>, where the xsi prefix is set 
to the schema instance namespace 
"http://www.w3.org/2001/XMLSchema-instance" (the prefix can be 
different, but the namespace has to be exactly as given).

Personally, I prefer using minOccurs="0" to nillable="true" in an 
element definition. These are generally treated the same by data binding 
frameworks (or should be - my own JiBX data binding framework doesn't 
support nillable as of right now), but the difference is that 
minOccurs="0" says you can just leave the element out of the document if 
it doesn't have a value, while nillable="true" without minOccurs="0" 
says the element must always be present whether it has a value or not. I 
think the XML representation is cleaner when the elements with no values 
are left out.

  - Dennis

Dennis M. Sosnoski
SOA, Web Services, and XML
Training and Consulting
http://www.sosnoski.com - http://www.sosnoski.co.nz
Seattle, WA +1-425-296-6194 - Wellington, NZ +64-4-298-6117



Dan Washusen wrote:

> Interesting, so how do I specify a null value for brokerage?
>
> I found http://redrice.com/schemavalid/faq/xml-schema.html#c2 but it 
> seems a little cumbersome/crap...
>
> On 5/12/06, *Dennis Sosnoski* <dms@sosnoski.com 
> <ma...@sosnoski.com>> wrote:
>
>     And the new error is very likely because your SOAP message has an
>     empty
>     <ns1:brokerage/> element, which is not valid for an xsd:decimal value.
>
>       - Dennis
>
>     Dan Washusen wrote:
>
>     > Thanks for that Sanjiva, you were spot on.  I did have the elements
>     > out of order in the SOAP envolope...
>     >
>     > I'm not getting:
>     >
>     >         [junit] Testcase:
>     >     testprocess(org.apache.axis2.RetrieveClientDetailsTest):  Caused
>     >     an ERROR
>     >         [junit] java.lang.NumberFormatException: For input
>     string: ""
>     >         [junit] java.lang.RuntimeException:
>     >     java.lang.NumberFormatException : For input string: ""
>     >         [junit]     at
>     >    
>     org.apache.axis2.RetrieveClientDetailsStub.fromOM(RetrieveClientDetailsStub.java:345)
>     >         [junit]     at
>     >    
>     org.apache.axis2.RetrieveClientDetailsStub.process(RetrieveClientDetailsStub.java
>
>     >     :114)
>     >         [junit]     at
>     >    
>     org.apache.axis2.RetrieveClientDetailsTest.testprocess(RetrieveClientDetailsTest.java:24)
>     >         [junit] Caused by: java.lang.NumberFormatException: For
>     input
>     >     string: ""
>     >         [junit]     at
>     >    
>     java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>     >         [junit]     at java.lang.Long.parseLong(Long.java:415)
>     >         [junit]     at java.lang.Long.parseLong(Long.java:452)
>     >         [junit]     at
>     >    
>     org.apache.axis2.databinding.utils.ConverterUtil.convertTolong(ConverterUtil.java:269)
>     >         [junit]     at
>     >    
>     au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(ClientDetailsType.java:571)
>     >         [junit]     at
>     >    
>     au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
>     (RetrieveClien
>     >     tDetailsProcessResponse.java:149)
>     >         [junit]     at
>     >    
>     org.apache.axis2.RetrieveClientDetailsStub.fromOM(RetrieveClientDetailsStub.java
>     >     :337)
>     >         [junit]     ... 17 more
>     >
>     >
>     > But that's probably a whole new issue...
>     >
>     > As a side note, if any of the Asix2 developers are listening.  You
>     > could possibly improve the user friendliness of Axis by making the
>     > exceptions a bit more informative...
>     >
>     > e.g. "Unexpected subelement fees, expected element contact.  It's
>     > possible the SOAP envelope doesn't adhere to the XSD" or
>     something...
>     >
>     >
>     >
>     > On 5/12/06, * Sanjiva Weerawarana* <sanjiva@opensource.lk
>     <ma...@opensource.lk>
>     > <mailto:sanjiva@opensource.lk <ma...@opensource.lk>>>
>     wrote:
>     >
>     >     On Fri, 2006-05-12 at 12:21 +1000, Dan Washusen wrote:
>     >     > Hi All,
>     >     > I'm getting a weird error and I was hoping someone could
>     tell me
>     >     what
>     >     > I'm doing wrong because I have no idea what's going on...
>     >
>     >     >
>     >     >               <xsd:element name="company" type="xsd:string"
>     >     >         nillable="true"/>
>     >     >               <xsd:element name="abnacn" type="xsd:string"
>     >     >         nillable="true"/>
>     >     >               <xsd:element name="cmtAccount1Id"
>     type="xsd:long"
>     >     >         nillable="true"/>
>     >     >               <xsd:element name="cmtAccount2Id"
>     type="xsd:long"
>     >     >         nillable="true"/>
>     >     >               <xsd:element name="contact" type="ContactType"
>     >     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
>     >     >               <xsd:element name="address" type="SiteType"
>     >     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
>     >     >               <xsd:element name="fees"
>     type="ClientFeesType"/>
>     >
>     >     So according to your schema, before the <fees> element,
>     there must
>     >     be at
>     >     least one <contact> element and an <address> element.
>     >
>     >     >         <ns1:company/>
>     >     >         <ns1:abnacn/>
>     >     >         <ns1:fees>
>     >     >         <ns1:lineFee>7.5</ns1:lineFee>
>     >     >         <ns1:shortFee>10</ns1:shortFee>
>     >     >         <ns1:brokerage/>
>     >     >         <ns1:interestRate> 5.75</ns1:interestRate>
>     >     >         <ns1:rebate/>
>     >     >         </ns1:fees>
>     >
>     >     But the SOAP message doesn't have it. It looks like whoever
>     generated
>     >     the SOAP envelope is not adhering to the schema.
>     >
>     >     Sanjiva.
>     >
>     >
>     >
>
>

Re: Axis2: Unexpected subelement fees

Posted by Dan Washusen <da...@gmail.com>.
Interesting, so how do I specify a null value for brokerage?

I found http://redrice.com/schemavalid/faq/xml-schema.html#c2 but it seems a
little cumbersome/crap...

On 5/12/06, Dennis Sosnoski <dm...@sosnoski.com> wrote:
>
> And the new error is very likely because your SOAP message has an empty
> <ns1:brokerage/> element, which is not valid for an xsd:decimal value.
>
>   - Dennis
>
> Dan Washusen wrote:
>
> > Thanks for that Sanjiva, you were spot on.  I did have the elements
> > out of order in the SOAP envolope...
> >
> > I'm not getting:
> >
> >         [junit] Testcase:
> >     testprocess(org.apache.axis2.RetrieveClientDetailsTest):  Caused
> >     an ERROR
> >         [junit] java.lang.NumberFormatException: For input string: ""
> >         [junit] java.lang.RuntimeException:
> >     java.lang.NumberFormatException : For input string: ""
> >         [junit]     at
> >     org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java:345)
> >         [junit]     at
> >     org.apache.axis2.RetrieveClientDetailsStub.process(
> RetrieveClientDetailsStub.java
> >     :114)
> >         [junit]     at
> >     org.apache.axis2.RetrieveClientDetailsTest.testprocess(
> RetrieveClientDetailsTest.java:24)
> >         [junit] Caused by: java.lang.NumberFormatException: For input
> >     string: ""
> >         [junit]     at
> >     java.lang.NumberFormatException.forInputString(
> NumberFormatException.java:48)
> >         [junit]     at java.lang.Long.parseLong(Long.java:415)
> >         [junit]     at java.lang.Long.parseLong(Long.java:452)
> >         [junit]     at
> >     org.apache.axis2.databinding.utils.ConverterUtil.convertTolong(
> ConverterUtil.java:269)
> >         [junit]     at
> >     au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(
> ClientDetailsType.java:571)
> >         [junit]     at
> >
> au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
> (RetrieveClien
> >     tDetailsProcessResponse.java:149)
> >         [junit]     at
> >     org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java
> >     :337)
> >         [junit]     ... 17 more
> >
> >
> > But that's probably a whole new issue...
> >
> > As a side note, if any of the Asix2 developers are listening.  You
> > could possibly improve the user friendliness of Axis by making the
> > exceptions a bit more informative...
> >
> > e.g. "Unexpected subelement fees, expected element contact.  It's
> > possible the SOAP envelope doesn't adhere to the XSD" or something...
> >
> >
> >
> > On 5/12/06, * Sanjiva Weerawarana* <sanjiva@opensource.lk
> > <ma...@opensource.lk>> wrote:
> >
> >     On Fri, 2006-05-12 at 12:21 +1000, Dan Washusen wrote:
> >     > Hi All,
> >     > I'm getting a weird error and I was hoping someone could tell me
> >     what
> >     > I'm doing wrong because I have no idea what's going on...
> >
> >     >
> >     >               <xsd:element name="company" type="xsd:string"
> >     >         nillable="true"/>
> >     >               <xsd:element name="abnacn" type="xsd:string"
> >     >         nillable="true"/>
> >     >               <xsd:element name="cmtAccount1Id" type="xsd:long"
> >     >         nillable="true"/>
> >     >               <xsd:element name="cmtAccount2Id" type="xsd:long"
> >     >         nillable="true"/>
> >     >               <xsd:element name="contact" type="ContactType"
> >     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
> >     >               <xsd:element name="address" type="SiteType"
> >     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
> >     >               <xsd:element name="fees" type="ClientFeesType"/>
> >
> >     So according to your schema, before the <fees> element, there must
> >     be at
> >     least one <contact> element and an <address> element.
> >
> >     >         <ns1:company/>
> >     >         <ns1:abnacn/>
> >     >         <ns1:fees>
> >     >         <ns1:lineFee>7.5</ns1:lineFee>
> >     >         <ns1:shortFee>10</ns1:shortFee>
> >     >         <ns1:brokerage/>
> >     >         <ns1:interestRate> 5.75</ns1:interestRate>
> >     >         <ns1:rebate/>
> >     >         </ns1:fees>
> >
> >     But the SOAP message doesn't have it. It looks like whoever
> generated
> >     the SOAP envelope is not adhering to the schema.
> >
> >     Sanjiva.
> >
> >
> >
>

Re: Axis2: Unexpected subelement fees

Posted by Dennis Sosnoski <dm...@sosnoski.com>.
And the new error is very likely because your SOAP message has an empty 
<ns1:brokerage/> element, which is not valid for an xsd:decimal value.

  - Dennis

Dan Washusen wrote:

> Thanks for that Sanjiva, you were spot on.  I did have the elements 
> out of order in the SOAP envolope...
>
> I'm not getting:
>
>         [junit] Testcase:
>     testprocess(org.apache.axis2.RetrieveClientDetailsTest):  Caused
>     an ERROR
>         [junit] java.lang.NumberFormatException: For input string: ""
>         [junit] java.lang.RuntimeException:
>     java.lang.NumberFormatException : For input string: ""
>         [junit]     at
>     org.apache.axis2.RetrieveClientDetailsStub.fromOM(RetrieveClientDetailsStub.java:345)
>         [junit]     at
>     org.apache.axis2.RetrieveClientDetailsStub.process(RetrieveClientDetailsStub.java
>     :114)
>         [junit]     at
>     org.apache.axis2.RetrieveClientDetailsTest.testprocess(RetrieveClientDetailsTest.java:24)
>         [junit] Caused by: java.lang.NumberFormatException: For input
>     string: ""
>         [junit]     at
>     java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
>         [junit]     at java.lang.Long.parseLong(Long.java:415)
>         [junit]     at java.lang.Long.parseLong(Long.java:452)
>         [junit]     at
>     org.apache.axis2.databinding.utils.ConverterUtil.convertTolong(ConverterUtil.java:269)
>         [junit]     at
>     au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(ClientDetailsType.java:571)
>         [junit]     at
>     au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse(RetrieveClien
>     tDetailsProcessResponse.java:149)
>         [junit]     at
>     org.apache.axis2.RetrieveClientDetailsStub.fromOM(RetrieveClientDetailsStub.java
>     :337)
>         [junit]     ... 17 more
>
>
> But that's probably a whole new issue...
>
> As a side note, if any of the Asix2 developers are listening.  You 
> could possibly improve the user friendliness of Axis by making the 
> exceptions a bit more informative...
>
> e.g. "Unexpected subelement fees, expected element contact.  It's 
> possible the SOAP envelope doesn't adhere to the XSD" or something...
>  
>
>
> On 5/12/06, * Sanjiva Weerawarana* <sanjiva@opensource.lk 
> <ma...@opensource.lk>> wrote:
>
>     On Fri, 2006-05-12 at 12:21 +1000, Dan Washusen wrote:
>     > Hi All,
>     > I'm getting a weird error and I was hoping someone could tell me
>     what
>     > I'm doing wrong because I have no idea what's going on...
>
>     >
>     >               <xsd:element name="company" type="xsd:string"
>     >         nillable="true"/>
>     >               <xsd:element name="abnacn" type="xsd:string"
>     >         nillable="true"/>
>     >               <xsd:element name="cmtAccount1Id" type="xsd:long"
>     >         nillable="true"/>
>     >               <xsd:element name="cmtAccount2Id" type="xsd:long"
>     >         nillable="true"/>
>     >               <xsd:element name="contact" type="ContactType"
>     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
>     >               <xsd:element name="address" type="SiteType"
>     >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
>     >               <xsd:element name="fees" type="ClientFeesType"/>
>
>     So according to your schema, before the <fees> element, there must
>     be at
>     least one <contact> element and an <address> element.
>
>     >         <ns1:company/>
>     >         <ns1:abnacn/>
>     >         <ns1:fees>
>     >         <ns1:lineFee>7.5</ns1:lineFee>
>     >         <ns1:shortFee>10</ns1:shortFee>
>     >         <ns1:brokerage/>
>     >         <ns1:interestRate> 5.75</ns1:interestRate>
>     >         <ns1:rebate/>
>     >         </ns1:fees>
>
>     But the SOAP message doesn't have it. It looks like whoever generated
>     the SOAP envelope is not adhering to the schema.
>
>     Sanjiva.
>
>
>

Re: Axis2: Unexpected subelement fees

Posted by Dan Washusen <da...@gmail.com>.
Thanks for that Sanjiva, you were spot on.  I did have the elements out of
order in the SOAP envolope...

I'm not getting:

>     [junit] Testcase: testprocess(
> org.apache.axis2.RetrieveClientDetailsTest):  Caused an ERROR
>     [junit] java.lang.NumberFormatException: For input string: ""
>     [junit] java.lang.RuntimeException: java.lang.NumberFormatException:
> For input string: ""
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java:345)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.process(
> RetrieveClientDetailsStub.java:114)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsTest.testprocess(
> RetrieveClientDetailsTest.java:24)
>     [junit] Caused by: java.lang.NumberFormatException: For input string:
> ""
>     [junit]     at java.lang.NumberFormatException.forInputString(
> NumberFormatException.java:48)
>     [junit]     at java.lang.Long.parseLong(Long.java:415)
>     [junit]     at java.lang.Long.parseLong(Long.java:452)
>     [junit]     at
> org.apache.axis2.databinding.utils.ConverterUtil.convertTolong(
> ConverterUtil.java:269)
>     [junit]     at
> au.com.nxf.www.nxfmessagetypes.ClientDetailsType$Factory.parse(
> ClientDetailsType.java:571)
>     [junit]     at
> au.com.nxf.www.retrieveclientdetails.RetrieveClientDetailsProcessResponse$Factory.parse
> (RetrieveClien
> tDetailsProcessResponse.java:149)
>     [junit]     at org.apache.axis2.RetrieveClientDetailsStub.fromOM(
> RetrieveClientDetailsStub.java:337)
>     [junit]     ... 17 more


But that's probably a whole new issue...

As a side note, if any of the Asix2 developers are listening.  You could
possibly improve the user friendliness of Axis by making the exceptions a
bit more informative...

e.g. "Unexpected subelement fees, expected element contact.  It's possible
the SOAP envelope doesn't adhere to the XSD" or something...



On 5/12/06, Sanjiva Weerawarana <sa...@opensource.lk> wrote:
>
> On Fri, 2006-05-12 at 12:21 +1000, Dan Washusen wrote:
> > Hi All,
> > I'm getting a weird error and I was hoping someone could tell me what
> > I'm doing wrong because I have no idea what's going on...
>
> >
> >               <xsd:element name="company" type="xsd:string"
> >         nillable="true"/>
> >               <xsd:element name="abnacn" type="xsd:string"
> >         nillable="true"/>
> >               <xsd:element name="cmtAccount1Id" type="xsd:long"
> >         nillable="true"/>
> >               <xsd:element name="cmtAccount2Id" type="xsd:long"
> >         nillable="true"/>
> >               <xsd:element name="contact" type="ContactType"
> >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
> >               <xsd:element name="address" type="SiteType"
> >         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
> >               <xsd:element name="fees" type="ClientFeesType"/>
>
> So according to your schema, before the <fees> element, there must be at
> least one <contact> element and an <address> element.
>
> >         <ns1:company/>
> >         <ns1:abnacn/>
> >         <ns1:fees>
> >         <ns1:lineFee>7.5</ns1:lineFee>
> >         <ns1:shortFee>10</ns1:shortFee>
> >         <ns1:brokerage/>
> >         <ns1:interestRate>5.75</ns1:interestRate>
> >         <ns1:rebate/>
> >         </ns1:fees>
>
> But the SOAP message doesn't have it. It looks like whoever generated
> the SOAP envelope is not adhering to the schema.
>
> Sanjiva.
>
>
>

Re: Axis2: Unexpected subelement fees

Posted by Sanjiva Weerawarana <sa...@opensource.lk>.
On Fri, 2006-05-12 at 12:21 +1000, Dan Washusen wrote:
> Hi All, 
> I'm getting a weird error and I was hoping someone could tell me what
> I'm doing wrong because I have no idea what's going on...

>         
>               <xsd:element name="company" type="xsd:string"
>         nillable="true"/> 
>               <xsd:element name="abnacn" type="xsd:string"
>         nillable="true"/>
>               <xsd:element name="cmtAccount1Id" type="xsd:long"
>         nillable="true"/> 
>               <xsd:element name="cmtAccount2Id" type="xsd:long"
>         nillable="true"/>
>               <xsd:element name="contact" type="ContactType"
>         nillable="true" minOccurs="1" maxOccurs="unbounded"/> 
>               <xsd:element name="address" type="SiteType"
>         nillable="true" minOccurs="1" maxOccurs="unbounded"/>
>               <xsd:element name="fees" type="ClientFeesType"/> 

So according to your schema, before the <fees> element, there must be at
least one <contact> element and an <address> element.

>         <ns1:company/>
>         <ns1:abnacn/>
>         <ns1:fees>
>         <ns1:lineFee>7.5</ns1:lineFee>
>         <ns1:shortFee>10</ns1:shortFee>
>         <ns1:brokerage/>
>         <ns1:interestRate>5.75</ns1:interestRate>
>         <ns1:rebate/>
>         </ns1:fees>

But the SOAP message doesn't have it. It looks like whoever generated
the SOAP envelope is not adhering to the schema.

Sanjiva.