Hey Russell,
Isn't use a required attribute in the WSDL? I guess WSDL4J doesn't require it.... :-( -- Tom Jordahl -----Original Message----- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Wednesday, March 20, 2002 8:37 AM To: [EMAIL PROTECTED] Subject: cvs commit: xml-axis/java/src/org/apache/axis/wsdl/toJava SymbolTable.java butek 02/03/20 05:36:47 Modified: java/src/org/apache/axis/utils resources.properties java/src/org/apache/axis/wsdl/toJava SymbolTable.java Log: Throw a useful exception if the use attribute is missing from a soap:operation. It used to throw NullPointerException. Revision Changes Path 1.78 +2 -0 xml-axis/java/src/org/apache/axis/utils/resources.properties Index: resources.properties =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/resources.properties,v retrieving revision 1.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- resources.properties 19 Mar 2002 22:51:14 -0000 1.77 +++ resources.properties 20 Mar 2002 13:36:47 -0000 1.78 @@ -775,3 +775,5 @@ noElemOrType=Error: Message part {0} of operation {1} should have either an element or a type attribute badTypeNode=Error: Missing type resolution for element {2}, in WSDL message part {0} of operation {1} +# NOTE: in noUse, do no translate "soap:operation", "binding operation", "use". +noUse=The soap:operation for binding operation {0} must have a "use" attribute. 1.48 +12 -0 xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java Index: SymbolTable.java =================================================================== RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/toJava/SymbolTable.java,v retrieving revision 1.47 retrieving revision 1.48 diff -u -r1.47 -r1.48 --- SymbolTable.java 19 Mar 2002 23:29:28 -0000 1.47 +++ SymbolTable.java 20 Mar 2002 13:36:47 -0000 1.48 @@ -1236,6 +1236,10 @@ Object obj = inIter.next(); if (obj instanceof SOAPBody) { String use = ((SOAPBody) obj).getUse(); + if (use == null) { + throw new IOException(JavaUtils.getMessage( + "noUse", bindOp.getName())); + } if (use.equalsIgnoreCase("literal")) { inputBodyType = BindingEntry.USE_LITERAL; } @@ -1253,6 +1257,10 @@ Object obj = outIter.next(); if (obj instanceof SOAPBody) { String use = ((SOAPBody) obj).getUse(); + if (use == null) { + throw new IOException(JavaUtils.getMessage( + "noUse", bindOp.getName())); + } if (use.equalsIgnoreCase("literal")) { outputBodyType = BindingEntry.USE_LITERAL; } @@ -1278,6 +1286,10 @@ Object obj = faultIter.next(); if (obj instanceof SOAPBody) { String use = ((SOAPBody) obj).getUse(); + if (use == null) { + throw new IOException(JavaUtils.getMessage( + "noUse", bindOp.getName())); + } if (use.equalsIgnoreCase("literal")) { faultBodyType = BindingEntry.USE_LITERAL; }