Thanks Rich! Verified that anyType comes out in the right places for this service:
public class MyService { public String myop(MyStruct in, java.util.Locale locin) { return "out"; } } public class MyStruct { public java.util.Locale loc; public String name; } I don't know how to make a test for this, which isn't so important since this service will never work. Anyone have any thoughts on how we might get a service like this work? -- Tom Jordahl Macromedia Server Development -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Thursday, September 26, 2002 5:52 PM To: [EMAIL PROTECTED] Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/fromJava Emitter.java Types.java scheu 2002/09/26 14:52:13 Modified: java/src/org/apache/axis/wsdl/fromJava Emitter.java Types.java Log: More changes per review of code by Tom and I. this is all related to the 12347 bug fix. Revision Changes Path 1.65 +1 -1 xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java Index: Emitter.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Emitter.java,v retrieving revision 1.64 retrieving revision 1.65 diff -u -r1.64 -r1.65 --- Emitter.java 26 Sep 2002 21:13:25 -0000 1.64 +++ Emitter.java 26 Sep 2002 21:52:12 -0000 1.65 @@ -1088,7 +1088,7 @@ QName typeQName = types.writeTypeForPart(javaType, param.getTypeQName()); - types.writeElementForPart(javaType, + QName elemQName = types.writeElementForPart(javaType, param.getTypeQName()); if (typeQName != null) { part.setName(param.getName()); 1.63 +13 -7 xml-axis/java/src/org/apache/axis/wsdl/fromJava/Types.java Index: Types.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/fromJava/Types.java,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- Types.java 26 Sep 2002 21:13:25 -0000 1.62 +++ Types.java 26 Sep 2002 21:52:13 -0000 1.63 @@ -231,7 +231,9 @@ * @param type <code>Class</code> to generate the XML Schema info for * @param qname <code>QName</code> of the type. If null, qname is * defaulted from the class. - * @return the QName of the generated Schema type, null if void + * @return the QName of the generated Schema type, null if void, + * if the Class type cannot be converted to a schema type + * then xsd:anytype is returned. */ public QName writeTypeForPart(Class type, QName qname) throws AxisFault { //patch by costin to fix an NPE; commented out till we find out what the problem is @@ -265,8 +267,10 @@ writeWsdlTypesElement(); } - // write the type - writeType(type, qname); + // Write the type, if problems occur use ANYTYPE + if (writeType(type, qname) == null) { + qname = Constants.XSD_ANYTYPE; + } return qname; } @@ -318,8 +322,10 @@ writeWsdlTypesElement(); } - // Write Element - writeTypeAsElement(type, qname); + // Write Element, if problems occur return null. + if (writeTypeAsElement(type, qname) == null) { + qname = null; + } return qname; } @@ -380,7 +386,7 @@ /** * Create a schema element for the given type * @param type the class type - * @return the QName of the generated Element or null if no element written + * @return the QName of the generated Element or problems occur */ private QName writeTypeAsElement(Class type, QName qName) throws AxisFault { if (qName == null || @@ -598,7 +604,7 @@ * * @param type Class for which to generate schema * @param qName of the type to write - * @return a prefixed string for the schema type + * @return a prefixed string for the schema type or null if problems occur */ public String writeType(Class type, QName qName) throws AxisFault { // Get a corresponding QName if one is not provided