This is mandated by the JAXB 2.1 spec, as follows:
8.12.7Multidimensional Array
By default, a multidimensional array must be mapped to a complex type as
follows. Note the table specifies a two dimensional array mapping. If
an array is
more than two dimensions, then the mapping is used recursively.
Table 8-1 Mapping: Two dimensional array to Complex Type Definition
{name} If the basetype is a primitive type (e.g. int[][]) or its
corresponding wrapper class (e.g. Integer[][]), then the
name is basetype concatenated with "Array" (e.g.
intArray).
otherwise if the basetype is a reference type (e.g.
Foo[][]), then the XML name to which the reference
type is mapped (e.g. foo) concatenated with "Array"
(e.g. fooArray).
{target namespace} if the basetype is a primitive or its corresponding
wrapper class then "http://jaxb.dev.java.net/
array"
otherwise the namespace to which the reference type is
mapped (e.g. for Foo[][], the namespace of the XML
type to which Foo is mapped).
{base type definition} xs:anyType
{derivation method} restriction
{final} #all
Notes
12/11/06 JAXB 2.1 – Final Release 293
8.13Notes
This section contains a collection of notes intended to aid in the
review of this
version of the specification. They are collected here in a separate section and
referenced from possibly multiple places elsewhere in the specification to make
the specification more compact.
{abstract} false
{attribute uses} empty set
{attribute wildcard} absent
{content type} element-only content
content model mapped as specified in
Table 8-36, "Mapping: Two dimensional array to
sequence model group," on page 292".
{prohibited
substitutions}
Empty set
{annotations} absent
Table 8-2 Mapping: Two dimensional array to sequence model group
{compositor} xs:sequence
{particles} A repeating element defined as follows:
<xs:element name="item"
type=schematype minOccurs="0"
maxOccurs="unbounded"
nillable="true"/>
where schematype is the schema to which the array's
component type is mapped (e.g. int[][], then "xs:int";
Foo[][] then "foo" assuming Foo is mapped to the
schema type foo.
{annotation} unspecified
On Tue, Dec 9, 2008 at 7:55 PM, Benson Margulies <[EMAIL PROTECTED]> wrote:
> I'm relatively sure that this happens because you are hitting a
> requirement of the JAX-WS spec.
>
> This leads me to believe that you are not using ServerFactoryBean, but
> rather JaxWsServerFactoryBean.
>
> Are you sure? There might be a reason why we feel compelled to do like
> JAX-WS even in this case, but I wanted to check.
>
>
> On Tue, Dec 9, 2008 at 10:42 AM, Mickael Istria
> <[EMAIL PROTECTED]> wrote:
>> Hello,
>>
>> First of all, I'd like to apologize in case of this question is a classic
>> about CXF and/or JaxB, but my research did not give me a good answer, that's
>> why I come to this mailing-list.
>>
>> I have a Service that I expose from a Java class with a "normal" CXF
>> ServerFactoryBean with default databinding and co... (I attached the WSDL
>> generated by CXF).
>> The only method in my class is
>> public String[][] TestJob() throws Exception
>>
>> I now access this service in a JUnit test with a DynamicClientFactory. But
>> the result of client.invoke("TestJob") is actually a
>> net.java.dev.jaxb.array.StringArray[] whereas I wish to have a String[][].
>>
>> I imagine that there is a way to get the String[][] I expect, and I also
>> imagine (according to the wsdl that contains the StringArray type
>> definition) that such a customization may occur at server side, but I did
>> not succeed to find how to specify it.
>>
>> Does anyone have a clue to help me?
>>
>> Regards,
>> Mickael
>>
>