Thanks Dan, that worked. The Audio class had no default constructor by accident. Once in place the WSDL generated more information about the Audio object and I was able to test the service from java and soapUI without an issue. -Barry
On Tue, Oct 20, 2009 at 11:26 AM, Daniel Kulp <[email protected]> wrote: > > What does the Audio class look like? > > Does it have a default constructor? Are all properties defined with > public > getter and setters? > > That all said, I wold definitely encourage you to upgrade to a newer > version > of CXF. > > Dan > > On Tue October 20 2009 10:31:06 am Barry Kern wrote: > > 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 > > > > -- > Daniel Kulp > [email protected] > http://www.dankulp.com/blog >
