Hi,
I am using cxf 2.0.9 and JAX WS to write a web service. I have never written
one that takes parameters besides the primitive types and my thought is I am
missing a step. I have coded the web service and written a test in java that
is successful however when clients outside of java are attempting to consume
the service its not working. In an attempt to test this situation I use
soapUI and try to make a valid soap call to the service and the array is
still coming in null.  I tried re writing the service to take a
collection(instead of the array) and I still see the same issue.

The method signature looks like this:


@WebMethod(operationName="getMix")
@WebResult(name="result")
Mix getMix(
@WebParam(name = "length")String length,
@WebParam(name = "bitrate")String bitrate,
@WebParam(name = "audio") Collection<Audio> audio
);


It returns a object of type mix and in the WSDL I see these lines which make
me think the web service understands the mix object

<xs:complexType name="mix">
-
<xs:complexContent>
-
<xs:extension base="abstractEntity">
-
<xs:sequence>
<xs:element minOccurs="0" name="status" type="xs:string"/>
<xs:element minOccurs="0" name="url" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>

There isn't as any information in the WSDL for the type Audio which I am
thinking this is why I am having an issue. Here is what I see for the method
above in the WSDL:

<xs:element name="getMix" type="getMix"/>
-
<xs:complexType name="getMix">
-
<xs:sequence>
<xs:element minOccurs="0" name="length" type="xs:string"/>
<xs:element minOccurs="0" name="bitrate" type="xs:string"/>
<xs:element maxOccurs="unbounded" minOccurs="0" name="audio"/>
</xs:sequence>
</xs:complexType>
<xs:element name="getMixResponse" type="getMixResponse"/>
-
<xs:complexType name="getMixResponse">
-
<xs:sequence>
<xs:element minOccurs="0" name="result" type="mix"/>
</xs:sequence>
</xs:complexType>

Do I need to do something to the Audio class to have the web service better
understand how to represent this collection (or array)?

Thanks,
Barry

Reply via email to