3 Replies Latest reply on Jul 9, 2007 11:40 AM by Justin Bertram

    "ArrayOf" parameter types generating BindingExceptions

    Justin Bertram Newbie

      I am using a "Top Down" (aka wsdl-to-java) approach to create a JSR109 endpoint with JBossWS 1.2.1.GA.

      The WSDL that was provided to me contains things like:

       <s:complexType name="FieldSelection">
       <s:element minOccurs="0" maxOccurs="1" name="FieldName" type="s:string" />
       <s:element minOccurs="0" maxOccurs="1" name="Values" type="tns:ArrayOfString" />
       <s:complexType name="ArrayOfString">
       <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />

      My wstools-config.xml is:

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration xmlns="http://www.jboss.org/jbossws-tools">
       <wsdl-java location="services.wsdl" parameter-style="bare">
       <mapping file="mapping.xml" />

      Running the wstools Ant task finishes without a problem. Both the code and mapping document are generated without error.

      However, when I deploy the service and try to invoke it I get a BindingException saying that the ArrayOfString class cannot be found. Upon inspection of the generated classes there isn't a ArrayOfString.java file nor any references to a ArrayOfString object in FieldSelection.java. FieldSelection uses the actual array type "String[]".

      When I look at the mapping.xml I see this:

       <root-type-qname xmlns:typeNS='http://www.domain.com/projname/services'>typeNS:ArrayOfString</root-type-qname>

      When I remove this snippet from the mapping.xml everything works fine.

      Is this appropriate behavior?