Dear Amila,

Thanks for the response.

I tried what you mentioned. I till get the same exception. Here are the
artifacts:

1. Test Class:
package com.ihg.ws.cxf.servlets;

import java.io.ByteArrayInputStream;

import javax.xml.stream.XMLStreamReader;

import org.apache.axiom.om.util.StAXUtils;
import org.opentravel.www.ota._2003._05.ContactNumbers_type0;

public class ContactNumbersTest {

    public static void main(String[] args) {
        String newString = "<ContactNumbers xmlns=\"
http://www.opentravel.org/OTA/2003/05\";>\n"
                + "<ContactNumber PhoneNumber=\"1-305-4469000\"
PhoneTechType=\"1\" PhoneUseType=\"5\"/>\n"
                + "<ContactNumber PhoneNumber=\"1-305-4471189\"
PhoneTechType=\"3\" PhoneUseType=\"5\"/>\n"
                + "</ContactNumbers>";
        try {
            XMLStreamReader xmlReader = StAXUtils
                    .createXMLStreamReader(new
ByteArrayInputStream(newString
                            .getBytes()));
            ContactNumbers_type0 result = ContactNumbers_type0.Factory
                    .parse(xmlReader);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}


EXCEPTION:
java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected
subelement ContactNumber
    at
org.opentravel.www.ota._2003._05.ContactNumbers_type0$Factory.parse(ContactNumbers_type0.java:582)
    at
com.ihg.ws.cxf.servlets.ContactNumbersTest.main(ContactNumbersTest.java:22)
Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement
ContactNumber
    at
org.opentravel.www.ota._2003._05.ContactNumbers_type0$Factory.parse(ContactNumbers_type0.java:578)
    ... 1 more


Generated Factory.parse method in Class ContactNumbers_type0 (Please note
the section marked between >>>>>>>>>> and <<<<<<<<<<<<, At this point Both
reader.isEndElement() and reader.isStartElement() are true):
--------------------------------------------------------------------------------------------------------------
public static ContactNumbers_type0 parse(
                javax.xml.stream.XMLStreamReader reader)
                throws java.lang.Exception {
            ContactNumbers_type0 object = new ContactNumbers_type0();

            int event;
            java.lang.String nillableValue = null;
            java.lang.String prefix = "";
            java.lang.String namespaceuri = "";
            try {

                while (!reader.isStartElement() && !reader.isEndElement())
                    reader.next();

                if (reader.getAttributeValue(
                        "http://www.w3.org/2001/XMLSchema-instance";, "type")
!= null) {
                    java.lang.String fullTypeName = reader
                            .getAttributeValue(
                                    "
http://www.w3.org/2001/XMLSchema-instance";,
                                    "type");
                    if (fullTypeName != null) {
                        java.lang.String nsPrefix = null;
                        if (fullTypeName.indexOf(":") > -1) {
                            nsPrefix = fullTypeName.substring(0,
fullTypeName
                                    .indexOf(":"));
                        }
                        nsPrefix = nsPrefix == null ? "" : nsPrefix;

                        java.lang.String type = fullTypeName
                                .substring(fullTypeName.indexOf(":") + 1);

                        if (!"ContactNumbers_type0".equals(type)) {
                            // find namespace for the prefix
                            java.lang.String nsUri = reader
                                    .getNamespaceContext().getNamespaceURI(
                                            nsPrefix);
                            return (ContactNumbers_type0)
org.opentravel.www.ota._2003._05.ExtensionMapper
                                    .getTypeObject(nsUri, type, reader);
                        }

                    }

                }

                // Note all attributes that were handled. Used to differ
normal
                // attributes
                // from anyAttributes.
                java.util.Vector handledAttributes = new java.util.Vector();

                reader.next();

                java.util.ArrayList list1 = new java.util.ArrayList();

                while (!reader.isStartElement() && !reader.isEndElement())
                    reader.next();

                if (reader.isStartElement()
                        && new javax.xml.namespace.QName(
                                "http://www.opentravel.org/OTA/2003/05";,
                                "ContactNumber").equals(reader.getName())) {

                    // Process the array and step past its final element's
end.
                    list1

.add(org.opentravel.www.ota._2003._05.TelephoneInfoType.Factory
                                    .parse(reader));

                    // loop until we find a start element that is not part
of
                    // this array
                    boolean loopDone1 = false;
                    while (!loopDone1) {
                        // We should be at the end element, but make sure
                        while (!reader.isEndElement())
                            reader.next();
                        // Step out of this element
                        reader.next();
                        // Step to next element event.
                        while (!reader.isStartElement()
                                && !reader.isEndElement())
                            reader.next();
>>>>>>>>>>                        if (reader.isEndElement()) {
                            // two continuous end elements means we are
exiting
                            // the xml structure
                            loopDone1 = true;               <<<<<<<<<<
                        } else {
                            if (new javax.xml.namespace.QName(
                                    "http://www.opentravel.org/OTA/2003/05";,

"ContactNumber").equals(reader.getName())) {
                                list1

.add(org.opentravel.www.ota._2003._05.TelephoneInfoType.Factory
                                                .parse(reader));

                            } else {
                                loopDone1 = true;
                            }
                        }
                    }
                    // call the converter utility to convert and set the
array

                    object

.setContactNumber((org.opentravel.www.ota._2003._05.TelephoneInfoType[])
org.apache.axis2.databinding.utils.ConverterUtil
                                    .convertToArray(

org.opentravel.www.ota._2003._05.TelephoneInfoType.class,
                                            list1));

                } // End of if for expected property start element

                else {

                }

                while (!reader.isStartElement() && !reader.isEndElement())
                    reader.next();

                if (reader.isStartElement())
                    // A start element we are not expecting indicates a
trailing
                    // invalid property
                    throw new org.apache.axis2.databinding.ADBException(
                            "Unexpected subelement " +
reader.getLocalName());

            } catch (javax.xml.stream.XMLStreamException e) {
                throw new java.lang.Exception(e);
            }

            return object;
        }
--------------------------------------------------------------------------------------------------------------

Please advice.

Many Thanks,
Nateshan

On Tue, Dec 30, 2008 at 11:20 PM, Amila Suriarachchi <
[email protected]> wrote:

>
>
> On Tue, Dec 30, 2008 at 11:46 PM, Nateshan Soundarapandian <
> [email protected]> wrote:
>
>> Dear Deepal,
>>
>> Thanks for the response. NO, The server side code is not Axis2. However
>> the server side code returns the soap envelope that conforms to the Schema
>> defined in the wsdl.
>>
>> This problem is related to sequences defined in the xsd.
>>
>>
>> Here is what I defined in the Response schema:
>> <xs:element name="ContactNumbers" minOccurs="0">
>>                 <xs:complexType>
>>                     <xs:sequence>
>>                         <xs:element name="ContactNumber"
>> type="TelephoneInfoType" minOccurs="0" maxOccurs="unbounded">
>>                             <xs:annotation>
>>                                 <xs:documentation xml:lang="en">Contact
>> numbers of the hotel property. Examples are telephone and fax
>> numbers.</xs:documentation>
>>                             </xs:annotation>
>>                         </xs:element>
>>                     </xs:sequence>
>>                 </xs:complexType>
>>
>> Here is the Response:
>> <ContactNumbers>
>> <ContactNumber PhoneNumber="1-305-4469000" PhoneTechType="1"
>> PhoneUseType="5"/>
>> <ContactNumber PhoneNumber="1-305-4471189" PhoneTechType="3"
>> PhoneUseType="5"/>
>> </ContactNumbers>
>
>
> try with this code
>
> String newString = "<ContactNumbers xmlns=\"
> http://www.opentravel.org/OTA/2003/05\<http://www.opentravel.org/OTA/2003/05%5C>">\n"
> +
>                     "<ContactNumber PhoneNumber=\"1-305-4469000\"
> PhoneTechType=\"1\" PhoneUseType=\"5\"/>\n" +
>                     "<ContactNumber PhoneNumber=\"1-305-4471189\"
> PhoneTechType=\"3\" PhoneUseType=\"5\"/>\n" +
>                     "</ContactNumbers>";
>             XMLStreamReader xmlReader = StAXUtils.createXMLStreamReader(new
> ByteArrayInputStream(newString.getBytes()));
>             ContactNumbers_type0 result =
> ContactNumbers_type0.Factory.parse(xmlReader);
>
> what is the Axis2 version you use?
> thanks,
> Amila.
>
>>
>>
>> Exception:
>> org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException:
>> Unexpected subelement ContactNumber
>> at org.apache.axis2.AxisFault.makeFault(AxisFault.java:430)
>> at org.opentravel.
>> www.ota._2003._05.HotelAvailabilityStub.fromOM(HotelAvailabilityStub.java:363)<http://www.ota._2003._05.hotelavailabilitystub.fromom%28hotelavailabilitystub.java:363/>
>> at org.opentravel.
>> www.ota._2003._05.HotelAvailabilityStub.HotelAvailabilityOperation(HotelAvailabilityStub.java:191)<http://www.ota._2003._05.hotelavailabilitystub.hotelavailabilityoperation%28hotelavailabilitystub.java:191/>
>> at
>> com.ihg.ws.cxf.servlets.HotelAvailability.doGet(HotelAvailability.java:211)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:114)
>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:91)
>> at
>> com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:103)
>>
>> at
>> com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:187)
>>
>> at
>> com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:266)
>>
>> at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:270)
>> at com.caucho.server.port.TcpConnection.run(TcpConnection.java:678)
>> at com.caucho.util.ThreadPool$Item.runTasks(ThreadPool.java:721)
>> at com.caucho.util.ThreadPool$Item.run(ThreadPool.java:643)
>> at java.lang.Thread.run(Thread.java:595)
>>
>> Please note: Iam not posting all the schema information here as they are
>> huge.
>>
>>
>> Many Thanks,
>> nateshan
>>
>>
>>
>> On Tue, Dec 30, 2008 at 1:08 PM, Deepal Jayasinghe 
>> <[email protected]>wrote:
>>
>>> How about the server side code? is it also Axis2?
>>>
>>> You get this error when you receive a message which is not correct
>>> according to its WSDL.
>>>
>>> Deepal
>>> > Hi,
>>> >
>>> > I am new to Axis2. I am having some trouble with the Axis Client code
>>> > that was generated using Axis2 Release 1.4.1. However I wanted to try
>>> > with the nightly builds to see if the problem has been fixed as I see
>>> > so many bug reports on Axis2/ADB UnExpected Sublement errors.
>>> >
>>> > Please advice on where I can download Axis2/Java nightly builds, The
>>> > Axis2 Website only points to a directory where only Axis2/C Nightly
>>> > downloads are available.
>>> >
>>> > Many Thanks,
>>> > Nateshan Soundarapandian
>>> > Amutech Business Solutions Inc
>>> > Mobile:(813) 579-0326
>>> > Fax: (919) 882-1737
>>>
>>> --
>>> Thank you!
>>>
>>>
>>> http://blogs.deepal.org
>>> http://deepal.org
>>>
>>>
>>
>
>
> --
> Amila Suriarachchi
> WSO2 Inc.
> blog: http://amilachinthaka.blogspot.com/
>

Reply via email to