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 "Detelin Yordanov (JIRA)" <ji...@apache.org> on 2008/05/28 13:39:45 UTC

[jira] Updated: (AXIS2-3825) Bean property generated with lowercase first letter in schema, but returned with uppercase in the response

     [ https://issues.apache.org/jira/browse/AXIS2-3825?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Detelin Yordanov updated AXIS2-3825:
------------------------------------

    Attachment: stacktrace.txt
                tcpmon_log.txt
                TypeTest.zip

Attached a simple Eclipse project with the service and ADB client I used to test with;
also according log/stacktrace.

> Bean property generated with lowercase first letter in schema, but returned with uppercase in the response
> ----------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2-3825
>                 URL: https://issues.apache.org/jira/browse/AXIS2-3825
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: adb, kernel
>         Environment: Axis2 1.4
>            Reporter: Detelin Yordanov
>             Fix For: 1.4
>
>         Attachments: stacktrace.txt, tcpmon_log.txt, TypeTest.zip
>
>
> Hi guys,
>  I have the following problem - I have a simple bean with a property that starts with an uppercase letter (e.g. ID).
> public class Person {
>     protected Integer id;
>     protected String name;
>     
>     public Integer getID() {  return id; }
>     public void setID(Integer id) { this.id = id; }
>     public String getName() { return name; }
>     public void setName(String name) { this.name = name; }
> }
> When I generate the schema element for it (using Java2WSDL), it's being generated with lowercase - "iD":
> <xs:complexType name="Person">
>     <xs:sequence>
>         <xs:element minOccurs="0" name="iD" nillable="true" type="xs:int"/>
>         <xs:element minOccurs="0" name="name" nillable="true" type="xs:string"/>
>     </xs:sequence>
> </xs:complexType>
> That's not a problem by itself, the real problem, however, is that if I send a request  using ADB client it contains "iD",
> while the response returned - "ID":
> REQUEST:
> <ns2:inPerson>
>                <ns1:iD xmlns:ns1="http://data.test.tempuri.org/xsd">1</ns1:iD>
>                <ns1:name xmlns:ns1="http://data.test.tempuri.org/xsd">Detelin</ns1:name>
> </ns2:inPerson>
> RESPONSE:
> <ns:return xmlns:ax21="http://data.test.tempuri.org/xsd" type="org.tempuri.test.data.Person">
>                <ax21:ID xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:nil="true" />
>                <ax21:name>Detelin</ax21:name>
> </ns:return>
> Notice that the returned "ID" property has not even been initialized.
> As you might guess, upon receving of the response, ADB client throws "Unexpected subelement ID".
> The reason for the lowercase schema element is due to the
> org.apache.axis2.description.java2wsdl.DefaultSchemaGenerator#getCorrectName(String wrongName)  method
> and has been present since Axis2 1.3 (or maybe even earlier).
> The method's javadoc states: "JAM converts the first letter of a field into uppercase, so field "foo" would end up called "Foo".  This method corrects that problem."
> Fine, but on server side (see org.apache.axis2.databinding.utils.BeanUtil#getPullParser(..)) JAM returns the property in uppercase - "ID".
> The getPullParser(..) method initially skipped properties whose property descriptors were not found, so I just did not get this property included in the 
> request (see line 140 in BeanUtil at revision 552171 for example).
> Now in Axis2 1.4 I can see that at the same place (now line 172) dims has added the following:
> if (propDesc == null) {
>     propDesc = (PropertyDescriptor)propertMap.get(
>             (property.getSimpleName()));
> }
> This has been added in revision 649524 of BeanUtil with message: "Sync with Axis2 trunk".
> I guess that because of this now the element gets included in the request, however with wrong name.
> Regards,
>    Detelin

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org