You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by di...@apache.org on 2003/03/10 00:32:33 UTC
cvs commit: xml-axis/java/src/org/apache/axis/i18n resource.properties
dims 2003/03/09 15:32:32
Modified: java/src/org/apache/axis/wsdl/symbolTable BindingEntry.java
SymbolTable.java
java/src/org/apache/axis/i18n resource.properties
Log:
Fix for Bug 17766 - WSDL2Java cannot process documents with fewer operations in a Binding than in the corresp. portType.
from Andrei.Iltchenko@nl.compuware.com (Andrei Iltchenko)
Revision Changes Path
1.10 +8 -0 xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java
Index: BindingEntry.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/BindingEntry.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- BindingEntry.java 30 Dec 2002 14:36:45 -0000 1.9
+++ BindingEntry.java 9 Mar 2003 23:32:30 -0000 1.10
@@ -64,6 +64,7 @@
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
+import java.util.Set;
/**
* This class represents a WSDL binding. It encompasses the WSDL4J Binding object so it can
@@ -458,6 +459,13 @@
public void setFaults(HashMap faults) {
this.faults = faults;
}
+
+ /**
+ * Get a {@link Set} of comprised {@link Operation} objects.
+ */
+ public Set getOperations() {
+ return attributes.keySet();
+ }
/**
* Set the fault body type map for the given operation.
1.74 +11 -0 xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java
Index: SymbolTable.java
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/wsdl/symbolTable/SymbolTable.java,v
retrieving revision 1.73
retrieving revision 1.74
diff -u -r1.73 -r1.74
--- SymbolTable.java 2 Mar 2003 19:07:36 -0000 1.73
+++ SymbolTable.java 9 Mar 2003 23:32:30 -0000 1.74
@@ -1178,6 +1178,7 @@
continue;
Binding binding = bEntry.getBinding();
+ Collection bindOperations = bEntry.getOperations();
PortType portType = binding.getPortType();
HashMap parameters = new HashMap();
@@ -1186,6 +1187,16 @@
// get parameters
while(operations.hasNext()) {
Operation operation = (Operation) operations.next();
+
+ // See if the PortType operation has a corresponding
+ // Binding operation and report an error if it doesn't.
+ if (!bindOperations.contains(operation)) {
+ throw new IOException(
+ Messages.getMessage("emitFailNoMatchingBindOperation01",
+ operation.getName(),
+ portType.getQName().getLocalPart()));
+ }
+
String namespace = portType.getQName().getNamespaceURI();
Parameters parms = getOperationParameters(operation,
namespace,
1.51 +1 -0 xml-axis/java/src/org/apache/axis/i18n/resource.properties
Index: resource.properties
===================================================================
RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/i18n/resource.properties,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- resource.properties 24 Feb 2003 19:54:01 -0000 1.50
+++ resource.properties 9 Mar 2003 23:32:32 -0000 1.51
@@ -189,6 +189,7 @@
emitFailNoBinding01=Emitter failure. No binding found for port {0}
emitFailNoBindingEntry01=Emitter failure. No binding entry found for {0}
emitFailNoPortType01=Emitter failure. No portType entry found for {0}
+emitFailNoMatchingBindOperation01=Emitter failure. The operation ({0}) from portType ({1}) in the WSDL document has no corresponding binding operation.\nHint: make sure that the binding has the same number of operations as its portType.
emitFailtUndefinedBinding01=Emitter failure. There is an undefined binding ({0}) in the WSDL document.\nHint: make sure <port binding=\"..\"> is fully qualified.
emitFailtUndefinedBinding02=Emitter failure. There is an undefined binding ({0}) in the WSDL document {1}.\nHint: make sure <port binding=\"..\"> is fully qualified.
emitFailtUndefinedMessage01=Emitter failure. There is an undefined message ({0}) in the WSDL document.\nHint: make sure <input message=\"..\"> and <output message=".."> are fully qualified.