hi all,
with the help of numerous people here (especially anne) and lots of
stepping through code and docs, i have finally gotten my client to
accept String[] return types with the doc/lit wrapped style.
for some reason, axis is creating an ArrayList rather than a String[]
for the return type of my methods, even though i never mention ArrayList
in my code. maybe the serializer for arrays just creates an ArrayList
for arrays and i missed the documentation for that some where. anyway,
here is the code i finally ended up using (note: getMembers() returns
String[]).
Service service = new Service();
Call call = (Call) service.createCall();
call.setTargetEndpointAddress(new java.net.URL(baseUrl +
"/GroupsServiceService"));
call.setOperationName("getMembers");
call.setEncodingStyle("wrapped");
call.addParameter("group", XMLType.XSD_STRING, ParameterMode.IN);
call.setReturnType(XMLType.XSD_STRING);
List members = (ArrayList)call.invoke(new Object[] { group });
what seemed odd to me was that return type needed to be set to the type
of the array elements, not the return type of the method call. i guess
this does make sense, but it's not something i would first think of.
feel free to comment on the code if anyone feels i am doing something
stupid.
thanks again to everyone that helped me through this!
nate