QName partType = part.getTypeName();
if (partType == null) {
throw new WSIFException("part " + names[i] + " must have type name declared");
}
try {
XmlJavaTypeMap typeMap =
soaprmiMapping.queryTypeMap(
inputEncodingStyle,
partType.getNamespaceURI(),
partType.getLocalPart());
types[i] = typeMap.javaClass();
} catch (XmlMapException ex) {
throw new WSIFException(
"Could not determine local java type for "
+ partType.getNamespaceURI()
+ ":"
+ partType.getLocalPart(),
ex);
}
}
} else {
names = new String[0];
types = new Class[0];
}
// now prepare return value
Output output = operation.getOutput();
if (output != null) {
Part returnPart = null;
if (returnName != null) {
returnPart = output.getMessage().getPart(returnName);
if (returnPart == null) {
throw new WSIFException(
"no output part named " + returnName + " for bining operation " + getName());
}
} else {
List parts = output.getMessage().getOrderedParts(null);
if (parts.size() > 0) {
returnPart = (Part) parts.get(0);
returnName = returnPart.getName();
}
}
if (returnPart != null) {
QName partType = returnPart.getTypeName();
try {
XmlJavaTypeMap typeMap =
soaprmiMapping.queryTypeMap(
outputEncodingStyle,
partType.getNamespaceURI(),
partType.getLocalPart());
returnType = typeMap.javaClass();
} catch (XmlMapException ex) {
throw new WSIFException(
"Could not determine local java type for "
+ partType.getNamespaceURI()
+ ":"