You are viewing a plain text version of this content. The canonical link for it is here.
Posted to axis-cvs@ws.apache.org by di...@apache.org on 2006/10/24 17:51:53 UTC

svn commit: r467365 - /webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java

Author: dims
Date: Tue Oct 24 08:51:53 2006
New Revision: 467365

URL: http://svn.apache.org/viewvc?view=rev&rev=467365
Log:
Fix for  AXIS2-1470 - wsdl2java fails to generate code complex wsdl files

Modified:
    webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java

Modified: webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java
URL: http://svn.apache.org/viewvc/webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java?view=diff&rev=467365&r1=467364&r2=467365
==============================================================================
--- webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java (original)
+++ webservices/axis2/branches/java/1_1/modules/kernel/src/org/apache/axis2/description/WSDL11ToAxisServiceBuilder.java Tue Oct 24 08:51:53 2006
@@ -363,7 +363,10 @@
             if (port != null) {
                 copyExtensibleElements(port.getExtensibilityElements(), dif,
                         axisService, PORT);
-                binding = port.getBinding();
+                binding = dif.getBinding(port.getBinding().getQName());
+                if(binding == null) {
+                    binding = port.getBinding();
+                }
             }
         } else {
             log.info("A service element was not found - "
@@ -421,8 +424,8 @@
             copyExtensibleElements(binding.getExtensibilityElements(), dif,
                     axisService, BINDING);
 
-            PortType portType = binding.getPortType();
-            processPortType(dif.getPortType(portType.getQName()), dif);
+            PortType portType = dif.getPortType(binding.getPortType().getQName());
+            processPortType(portType, dif);
 
             // String portTypeNs = portType.getQName().getNamespaceURI();
             List list = binding.getBindingOperations();
@@ -455,8 +458,9 @@
                         .getBindingOutput();
                 Map bindingFaultsMap = wsdl4jBindingOperation
                         .getBindingFaults();
-                Operation wsdl4jOperation = wsdl4jBindingOperation
-                        .getOperation();
+
+                Operation wsdl4jOperation = findOperation(portType, wsdl4jBindingOperation);
+
                 String MEP = operation.getMessageExchangePattern();
 
                 /* Process the binding inputs */
@@ -525,6 +529,21 @@
             }
 
         }
+    }
+
+    private Operation findOperation(PortType portType, BindingOperation wsdl4jBindingOperation) {
+        Operation op = wsdl4jBindingOperation
+                .getOperation();
+        String input = op.getInput().getName();
+        String output = op.getOutput().getName();
+        if(":none".equals(input)) {
+            input = null;
+        }
+        if(":none".equals(output)) {
+            output = null;
+        }
+        Operation op2 = portType.getOperation(op.getName(), input, output);
+        return ((op2 == null) ? op : op2);
     }
 
     /**



---------------------------------------------------------------------
To unsubscribe, e-mail: axis-cvs-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-cvs-help@ws.apache.org