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 ng...@apache.org on 2006/09/07 17:32:32 UTC

svn commit: r441121 - in /webservices/axis2/trunk/java/modules/jaxws: src/org/apache/axis2/jaxws/client/proxy/ test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/ test/org/apache/axis2/proxy/

Author: ngallardo
Date: Thu Sep  7 08:32:31 2006
New Revision: 441121

URL: http://svn.apache.org/viewvc?view=rev&rev=441121
Log:
AXIS2-1099
Contributor: Nikhil Thaker

Adding support for non-wrapped pattern, document/literal WSDLs.

Modified:
    webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/DocLitProxyHandler.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/AsyncCallback.java
    webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/ProxyNonWrappedTests.java

Modified: webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/DocLitProxyHandler.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/DocLitProxyHandler.java?view=diff&rev=441121&r1=441120&r2=441121
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/DocLitProxyHandler.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/src/org/apache/axis2/jaxws/client/proxy/DocLitProxyHandler.java Thu Sep  7 08:32:31 2006
@@ -23,7 +23,6 @@
 import java.lang.reflect.InvocationTargetException;
 import java.lang.reflect.Method;
 import java.util.ArrayList;
-import java.util.Arrays;
 import java.util.Hashtable;
 import java.util.Map;
 
@@ -34,8 +33,6 @@
 import javax.xml.ws.AsyncHandler;
 
 import org.apache.axiom.om.OMElement;
-import org.apache.axiom.soap.SOAPBody;
-import org.apache.axiom.soap.SOAPEnvelope;
 import org.apache.axis2.jaxws.ExceptionFactory;
 import org.apache.axis2.jaxws.core.MessageContext;
 import org.apache.axis2.jaxws.i18n.Messages;
@@ -47,7 +44,6 @@
 import org.apache.axis2.jaxws.message.factory.MessageFactory;
 import org.apache.axis2.jaxws.registry.FactoryRegistry;
 import org.apache.axis2.jaxws.spi.ServiceDelegate;
-import org.apache.axis2.jaxws.util.WSDLWrapper;
 import org.apache.axis2.jaxws.wrapper.JAXBWrapperTool;
 import org.apache.axis2.jaxws.wrapper.impl.JAXBWrapperException;
 import org.apache.axis2.jaxws.wrapper.impl.JAXBWrapperToolImpl;
@@ -333,7 +329,7 @@
 	public ArrayList<String> getParamNames(Object[] objects){ 
         ArrayList<String> names = proxyDescriptor.getParamNames();
         //TODO Should this logic be moved to Operation Description.
-		ArrayList<Object> paramValues = createArgList(objects);
+		ArrayList<Object> paramValues = createArgList(names, objects);
 		if(names.size() == paramValues.size()){
 			return names;
 		}
@@ -359,7 +355,7 @@
 		}
 		//if object array not null check if there is only AsyncHandler object param, if yes then its Async call 
 		//with no parameter. Lets filter AsyncHandler and check for return objects, if they are 0 return value;
-		ArrayList<Object> paramValues = createArgList(objects);
+		ArrayList<Object> paramValues = createArgList(names, objects);
 		
 		//@webparams and paramValues identified in method should match. 
 		if(names.size() > 0 && names.size() != paramValues.size()){
@@ -387,7 +383,7 @@
 		return values;
 	}
 	
-	private ArrayList<Object> createArgList(Object[] objects){
+	private ArrayList<Object> createArgList(ArrayList<String> names, Object[] objects){
 		if(this.argList !=null){
 			return argList;
 		}
@@ -396,13 +392,20 @@
 		if(objects == null){
 			return argList;
 		}
+		int i =0;
 		for(Object obj:objects){
 			//skip AsycHandler Object
-			if(obj instanceof AsyncHandler){		
+			if(obj instanceof AsyncHandler){
+				if(isAsync() && proxyDescriptor.isClazzDocLitBare()){
+					//doeble check and remove the name of AsyncHandler from names list, work around for how wsImport generates doc/lit bare art-effects.
+					names.remove(i);
+				}
+				i++;
 				continue;
 			}
 			
 			argList.add(obj);
+			i++;
 		}
 		return argList;
 	}

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java?view=diff&rev=441121&r1=441120&r2=441121
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/jaxws/proxy/doclitnonwrapped/sei/DocLitnonWrappedProxy.java Thu Sep  7 08:32:31 2006
@@ -1,12 +1,16 @@
 
 package org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei;
 
+import java.util.concurrent.Future;
+
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebResult;
 import javax.jws.WebService;
 import javax.jws.soap.SOAPBinding;
 import javax.jws.soap.SOAPBinding.ParameterStyle;
+import javax.xml.ws.AsyncHandler;
+import javax.xml.ws.Response;
 
 import org.test.proxy.doclitnonwrapped.Invoke;
 import org.test.proxy.doclitnonwrapped.ReturnType;
@@ -21,6 +25,30 @@
 @WebService(name = "DocLitnonWrappedProxy", targetNamespace = "http://doclitnonwrapped.proxy.test.org")
 @SOAPBinding(parameterStyle = ParameterStyle.BARE)
 public interface DocLitnonWrappedProxy {
+	/**
+     * 
+     * @param allByMyself
+     * @return
+     *     returns javax.xml.ws.Response<org.test.proxy.doclitnonwrapped.ReturnType>
+     */
+    @WebMethod(operationName = "invoke", action = "http://doclitnonwrapped.proxy.test.org/invokeReturn")
+    public Response<ReturnType> invokeAsync(
+        @WebParam(name = "invoke", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")
+        Invoke allByMyself);
+
+    /**
+     * 
+     * @param allByMyself
+     * @param asyncHandler
+     * @return
+     *     returns java.util.concurrent.Future<? extends java.lang.Object>
+     */
+    @WebMethod(operationName = "invoke", action = "http://doclitnonwrapped.proxy.test.org/invokeReturn")
+    public Future<?> invokeAsync(
+        @WebParam(name = "invoke", targetNamespace = "http://doclitnonwrapped.proxy.test.org", partName = "allByMyself")
+        Invoke allByMyself,
+        @WebParam(name = "invokeResponse", targetNamespace = "", partName = "asyncHandler")
+        AsyncHandler<ReturnType> asyncHandler);
 
 
     /**

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/AsyncCallback.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/AsyncCallback.java?view=diff&rev=441121&r1=441120&r2=441121
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/AsyncCallback.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/AsyncCallback.java Thu Sep  7 08:32:31 2006
@@ -35,10 +35,15 @@
 			if(obj instanceof ReturnType){
 				ReturnType type = (ReturnType)obj;
 				System.out.println(">>Return String = "+type.getReturnStr());
+				return;
 			}
-			else{
-				System.out.println("Response.get should have been ReturnType" );
+			if(obj instanceof org.test.proxy.doclitnonwrapped.ReturnType){
+				org.test.proxy.doclitnonwrapped.ReturnType returnType = (org.test.proxy.doclitnonwrapped.ReturnType)obj;
+				System.out.println(">>Return String = "+returnType.getReturnStr());
+				return;
 			}
+			System.out.println("Response.get should have been ReturnType" );
+			
 		}catch(ExecutionException e){
 			e.printStackTrace();
 		}catch(InterruptedException e){

Modified: webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/ProxyNonWrappedTests.java
URL: http://svn.apache.org/viewvc/webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/ProxyNonWrappedTests.java?view=diff&rev=441121&r1=441120&r2=441121
==============================================================================
--- webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/ProxyNonWrappedTests.java (original)
+++ webservices/axis2/trunk/java/modules/jaxws/test/org/apache/axis2/proxy/ProxyNonWrappedTests.java Thu Sep  7 08:32:31 2006
@@ -16,11 +16,17 @@
  */
 package org.apache.axis2.proxy;
 
+import java.io.File;
+import java.net.URL;
+import java.util.concurrent.Future;
+
 import javax.xml.namespace.QName;
+import javax.xml.ws.AsyncHandler;
 import javax.xml.ws.BindingProvider;
 import javax.xml.ws.Service;
 
 import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.DocLitnonWrappedProxy;
+import org.apache.axis2.jaxws.proxy.doclitnonwrapped.sei.ProxyDocLitUnwrappedService;
 import org.test.proxy.doclitnonwrapped.Invoke;
 import org.test.proxy.doclitnonwrapped.ObjectFactory;
 import org.test.proxy.doclitnonwrapped.ReturnType;
@@ -34,9 +40,10 @@
  */
 public class ProxyNonWrappedTests extends TestCase {
 
-	QName serviceName = new QName("http://doclitnonwrapped.test.org", "ProxyDocLitUnwrappedService");
+	QName serviceName = new QName("http://doclitnonwrapped.proxy.test.org", "ProxyDocLitUnwrappedService");
 	private String axisEndpoint = "http://localhost:8080/axis2/services/ProxyDocLitUnwrappedService";
 	private QName portName = new QName("http://org.apache.axis2.proxy.doclitwrapped", "ProxyDocLitWrappedPort");
+	private String wsdlLocation = "test-resources/wsdl/ProxyDocLitnonWrapped.wsdl";
 	public ProxyNonWrappedTests() {
 		super();
 		// TODO Auto-generated constructor stub
@@ -71,7 +78,36 @@
 	}
 	
 	public void testInvokeAsyncCallback(){
-		
+		try{ 
+			System.out.println("---------------------------------------");
+			System.out.println("DocLitNonWrapped test case: " + getName());
+			//Create wsdl url
+			File wsdl= new File(wsdlLocation); 
+			URL wsdlUrl = wsdl.toURL(); 
+			ObjectFactory factory = new ObjectFactory();
+			//create input object to web service operation
+			Invoke invokeObj = factory.createInvoke();
+			invokeObj.setInvokeStr("test request for twoWay Async Operation");
+			//Create Service
+			ProxyDocLitUnwrappedService service = new ProxyDocLitUnwrappedService(wsdlUrl, serviceName);
+			//Create proxy
+			DocLitnonWrappedProxy proxy = service.getProxyDocLitnonWrappedPort(); 
+			System.out.println(">>Invoking Binding Provider property");
+			//Setup Endpoint url -- optional.
+			BindingProvider p =	(BindingProvider)proxy;
+				p.getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,axisEndpoint);
+			System.out.println(">> Invoking Proxy Asynchronous Callback");
+			AsyncHandler<ReturnType> handler = new AsyncCallback();
+			//Invoke operation Asynchronously.
+			Future<?> monitor = proxy.invokeAsync(invokeObj, handler);
+			while(!monitor.isDone()){
+				Thread.sleep(1000);
+			}
+			System.out.println("---------------------------------------");
+		}catch(Exception e){ 
+			e.printStackTrace(); 
+            fail("Exception received" + e);
+		}
 	}
 	
 	public void testInvokeAsyncPolling(){



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