I have an Axis WS method that returns a complex type as a JavaBean.  It
uses beta2.

  My bean looks like this:

  public class Address {
    private String _FOO;
    private String _D_TSENT;

    public String getFOO() { return _FOO; }
    public String getD_TSENT() { return _D_TSENT; }
  }

  The WSDL appears like so:

  <complexType name="Address">
    <sequence>
      <element name="FOO"/>
      <element name="D_TSENT"/>
    </sequence>
  </complexType>
  <element name="Address" type="tns:Address">

  However, when I generate client stubs using Java2Wsdl and execute this:

  MyServiceProxy binding = new
MyServiceProxyServiceLocator().getMyService();
  Address addr = binding.getAddress(key);

  ...and see the XML come across as:
  <Address>
    <FOO>Bar</FOO>
    <D_TSENT>20020515</D_TSENT>
  </Address>

  ...I get the following error:

        org.xml.sax.SAXException: Invalid element in myclient.Address -
d_TSENT
        at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.
java:208)
        at org.apache.axis.encoding.DeserializationContextImpl.startElemen
(DeserializationContextImpl.java:831)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
589)
        at
org.apache.axis.encoding.ser.BeanDeserializer.onStartChild(BeanDeserializer.
java:208)
        at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
:370)
        at org.apache.axis.encoding.DeserializationContextImpl.startElement
(DeserializationContextImpl.java:831)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
        at
org.apache.axis.encoding.DeserializationContextImpl.startElement(Deserializa
tionContextImpl.java:844)
        at
org.apache.axis.message.SAX2EventRecorder.replay(SAX2EventRecorder.java:199)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
589)
        at
org.apache.axis.message.MessageElement.publishToHandler(MessageElement.java:
589)
        at
org.apache.axis.encoding.DeserializerImpl.startElement(DeserializerImpl.java
:370)
        at
org.apache.axis.message.RPCElement.deserialize(RPCElement.java:224)
        at org.apache.axis.message.RPCElement.getParams(RPCElement.java:248)
        at org.apache.axis.client.Call.invoke(Call.java:1701)
      ...

  It appears that the BeanDeserializer is somehow interpreting the character
before the underscore as lower case, causing problems when it tries to
deserialize the XML that's always uppercase for that field.  Is this a bug
in Axis?

  Thanks,

  Kory Lasker

Reply via email to