gdaniels 02/04/17 21:19:14
Modified: java/src/org/apache/axis/description ServiceDesc.java
Log:
If the introspected type is a Holder, use the held class when determining
the type QName.
Revision Changes Path
1.18 +9 -1 xml-axis/java/src/org/apache/axis/description/ServiceDesc.java
Index: ServiceDesc.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/description/ServiceDesc.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- ServiceDesc.java 15 Apr 2002 02:35:57 -0000 1.17
+++ ServiceDesc.java 18 Apr 2002 04:19:14 -0000 1.18
@@ -60,6 +60,7 @@
import org.apache.axis.wsdl.Skeleton;
import javax.xml.rpc.namespace.QName;
+import javax.xml.rpc.holders.Holder;
import java.util.*;
import java.lang.reflect.Method;
import java.lang.reflect.InvocationTargetException;
@@ -425,8 +426,15 @@
// If no type is specified, just use the Java type
QName typeQName = param.getTypeQName();
if (typeQName == null) {
+ if (Holder.class.isAssignableFrom(type)) {
+ typeQName = tm.getTypeQName(
+ JavaUtils.getHolderValueType(type));
+ } else {
+ typeQName = tm.getTypeQName(type);
+ }
+
param.setJavaType(type);
- param.setTypeQName(tm.getTypeQName(type));
+ param.setTypeQName(typeQName);
} else {
// A type was specified - see if they match
Class paramClass = tm.getClassForQName(