Author: mmao
Date: Thu Sep 13 01:27:58 2007
New Revision: 575213
URL: http://svn.apache.org/viewvc?rev=575213&view=rev
Log:
CXF994
* Clean up the method body of the async methods in the impl class
* Wrap the each method generated in the client, since we don't cache the
parameter's name, will cause duplicate definition
* Import the async classes in the client main line
* Add the callback handler field in the client mail line.
Fix typos
Added:
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/async.xml
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/hello_world_async.wsdl
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Impl.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Test.java
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaParameter.java
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Impl.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Impl.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Impl.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Impl.java
Thu Sep 13 01:27:58 2007
@@ -30,6 +30,6 @@
public class Cxf993Impl implements NotificationServicePort {
public String sendNotification(testnotification.SendNotification
parameters) {
- return "dumy";
+ return "dummy";
}
}
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Test.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Test.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Test.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/cxf993/Cxf993Test.java
Thu Sep 13 01:27:58 2007
@@ -40,7 +40,7 @@
@Test
public void testBasicConnection() throws Exception {
- assertEquals("dumy", getPort().sendNotification(new
SendNotification()));
+ assertEquals("dummy", getPort().sendNotification(new
SendNotification()));
}
private NotificationServicePort getPort() {
@@ -48,7 +48,7 @@
assertNotNull("WSDL is null", wsdl);
NotificationService service = new NotificationService(wsdl,
serviceName);
- assertNotNull("Service is ull ", service);
+ assertNotNull("Service is null ", service);
return service.getNotificationServicePort();
}
Modified:
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
(original)
+++
incubator/cxf/trunk/systests/src/test/java/org/apache/cxf/systest/soapheader/HeaderClientServerTest.java
Thu Sep 13 01:27:58 2007
@@ -72,7 +72,7 @@
assertNotNull("WSDL is null", wsdl);
PizzaService service = new PizzaService(wsdl, serviceName);
- assertNotNull("Service is ull ", service);
+ assertNotNull("Service is null ", service);
return service.getPizzaPort();
}
Modified:
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java
(original)
+++
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaMethod.java
Thu Sep 13 01:27:58 2007
@@ -50,6 +50,8 @@
private final Map<String, JavaAnnotation> annotations = new
HashMap<String, JavaAnnotation>();
private JavaCodeBlock block;
+
+ private boolean async;
public JavaMethod() {
this(new JavaInterface());
@@ -320,5 +322,13 @@
public JavaCodeBlock getJavaCodeBlock() {
return this.block;
+ }
+
+ public final boolean isAsync() {
+ return async;
+ }
+
+ public final void setAsync(final boolean newAsync) {
+ this.async = newAsync;
}
}
Modified:
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaParameter.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaParameter.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaParameter.java
(original)
+++
incubator/cxf/trunk/tools/common/src/main/java/org/apache/cxf/tools/common/model/JavaParameter.java
Thu Sep 13 01:27:58 2007
@@ -28,6 +28,11 @@
private String partName;
private JavaMethod javaMethod;
+
+ /**
+ * Describe callback here.
+ */
+ private boolean callback;
public JavaParameter() {
}
@@ -96,5 +101,23 @@
public void annotate(Annotator annotator) {
annotator.annotate(this);
+ }
+
+ /**
+ * Get the <code>Callback</code> value.
+ *
+ * @return a <code>boolean</code> value
+ */
+ public final boolean isCallback() {
+ return callback;
+ }
+
+ /**
+ * Set the <code>Callback</code> value.
+ *
+ * @param newCallback The new Callback value.
+ */
+ public final void setCallback(final boolean newCallback) {
+ this.callback = newCallback;
}
}
Modified:
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java
(original)
+++
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/processor/internal/OperationProcessor.java
Thu Sep 13 01:27:58 2007
@@ -36,6 +36,7 @@
import org.apache.cxf.tools.common.model.JavaMethod;
import org.apache.cxf.tools.common.model.JavaParameter;
import org.apache.cxf.tools.common.model.JavaReturn;
+import org.apache.cxf.tools.common.model.JavaType;
import org.apache.cxf.tools.wsdlto.frontend.jaxws.customization.JAXWSBinding;
import
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.annotator.SoapBindingAnnotator;
import
org.apache.cxf.tools.wsdlto.frontend.jaxws.processor.internal.annotator.WebMethodAnnotator;
@@ -63,7 +64,7 @@
void processMethod(JavaMethod method, OperationInfo operation,
JAXWSBinding globalBinding) throws ToolException
{
- if (isAsynCMethod(method)) {
+ if (isAsyncMethod(method)) {
return;
}
MessageInfo inputMessage = operation.getInput();
@@ -146,7 +147,7 @@
}
}
- private boolean isAsynCMethod(JavaMethod method) {
+ private boolean isAsyncMethod(JavaMethod method) {
if (method.getName().toLowerCase()
.equals((method.getOperationName() +
ToolConstants.ASYNC_METHOD_SUFFIX).toLowerCase())) {
return true;
@@ -162,64 +163,68 @@
method.getInterface().addImport("javax.xml.ws.Response");
}
- private void addPollingMethod(JavaMethod method) throws ToolException {
- JavaMethod pollingMethod = new JavaMethod(method.getInterface());
- pollingMethod.setName(method.getName() +
ToolConstants.ASYNC_METHOD_SUFFIX);
- pollingMethod.setStyle(method.getStyle());
- pollingMethod.setWrapperStyle(method.isWrapperStyle());
- pollingMethod.setSoapAction(method.getSoapAction());
- pollingMethod.setOperationName(method.getOperationName());
+ private void addCallbackMethod(JavaMethod method) throws ToolException {
+ JavaMethod callbackMethod = new JavaMethod(method.getInterface());
+ callbackMethod.setAsync(true);
+ callbackMethod.setName(method.getName() +
ToolConstants.ASYNC_METHOD_SUFFIX);
+ callbackMethod.setStyle(method.getStyle());
+ callbackMethod.setWrapperStyle(method.isWrapperStyle());
+ callbackMethod.setSoapAction(method.getSoapAction());
+ callbackMethod.setOperationName(method.getOperationName());
JavaReturn future = new JavaReturn();
future.setClassName("Future<?>");
- pollingMethod.setReturn(future);
+ callbackMethod.setReturn(future);
// REVISIT: test the operation name in the annotation
- pollingMethod.annotate(new WebMethodAnnotator());
- pollingMethod.addAnnotation("ResponseWrapper",
method.getAnnotationMap().get("ResponseWrapper"));
- pollingMethod.addAnnotation("RequestWrapper",
method.getAnnotationMap().get("RequestWrapper"));
- pollingMethod.addAnnotation("SOAPBinding",
method.getAnnotationMap().get("SOAPBinding"));
+ callbackMethod.annotate(new WebMethodAnnotator());
+ callbackMethod.addAnnotation("ResponseWrapper",
method.getAnnotationMap().get("ResponseWrapper"));
+ callbackMethod.addAnnotation("RequestWrapper",
method.getAnnotationMap().get("RequestWrapper"));
+ callbackMethod.addAnnotation("SOAPBinding",
method.getAnnotationMap().get("SOAPBinding"));
for (Iterator iter = method.getParameters().iterator();
iter.hasNext();) {
- pollingMethod.addParameter((JavaParameter)iter.next());
+ callbackMethod.addParameter((JavaParameter)iter.next());
}
JavaParameter asyncHandler = new JavaParameter();
asyncHandler.setName("asyncHandler");
+ asyncHandler.setCallback(true);
asyncHandler.setClassName(getAsyncClassName(method, "AsyncHandler"));
JavaAnnotation asyncHandlerAnnotation = new JavaAnnotation("WebParam");
asyncHandlerAnnotation.addArgument("name", "asyncHandler");
asyncHandlerAnnotation.addArgument("targetNamespace", "");
asyncHandler.setAnnotation(asyncHandlerAnnotation);
+ asyncHandler.setStyle(JavaType.Style.IN);
- pollingMethod.addParameter(asyncHandler);
+ callbackMethod.addParameter(asyncHandler);
- method.getInterface().addMethod(pollingMethod);
+ method.getInterface().addMethod(callbackMethod);
}
- private void addCallbackMethod(JavaMethod method) throws ToolException {
- JavaMethod callbackMethod = new JavaMethod(method.getInterface());
- callbackMethod.setName(method.getName() +
ToolConstants.ASYNC_METHOD_SUFFIX);
- callbackMethod.setStyle(method.getStyle());
- callbackMethod.setWrapperStyle(method.isWrapperStyle());
- callbackMethod.setSoapAction(method.getSoapAction());
- callbackMethod.setOperationName(method.getOperationName());
+ private void addPollingMethod(JavaMethod method) throws ToolException {
+ JavaMethod pollingMethod = new JavaMethod(method.getInterface());
+ pollingMethod.setAsync(true);
+ pollingMethod.setName(method.getName() +
ToolConstants.ASYNC_METHOD_SUFFIX);
+ pollingMethod.setStyle(method.getStyle());
+ pollingMethod.setWrapperStyle(method.isWrapperStyle());
+ pollingMethod.setSoapAction(method.getSoapAction());
+ pollingMethod.setOperationName(method.getOperationName());
JavaReturn response = new JavaReturn();
response.setClassName(getAsyncClassName(method, "Response"));
- callbackMethod.setReturn(response);
+ pollingMethod.setReturn(response);
// REVISIT: test the operation name in the annotation
- callbackMethod.annotate(new WebMethodAnnotator());
- callbackMethod.addAnnotation("RequestWrapper",
method.getAnnotationMap().get("RequestWrapper"));
- callbackMethod.addAnnotation("ResponseWrapper",
method.getAnnotationMap().get("ResponseWrapper"));
- callbackMethod.addAnnotation("SOAPBinding",
method.getAnnotationMap().get("SOAPBinding"));
+ pollingMethod.annotate(new WebMethodAnnotator());
+ pollingMethod.addAnnotation("RequestWrapper",
method.getAnnotationMap().get("RequestWrapper"));
+ pollingMethod.addAnnotation("ResponseWrapper",
method.getAnnotationMap().get("ResponseWrapper"));
+ pollingMethod.addAnnotation("SOAPBinding",
method.getAnnotationMap().get("SOAPBinding"));
for (Iterator iter = method.getParameters().iterator();
iter.hasNext();) {
- callbackMethod.addParameter((JavaParameter)iter.next());
+ pollingMethod.addParameter((JavaParameter)iter.next());
}
- method.getInterface().addMethod(callbackMethod);
+ method.getInterface().addMethod(pollingMethod);
}
private String getAsyncClassName(JavaMethod method, String clzName) {
Modified:
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
(original)
+++
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/client.vm
Thu Sep 13 01:27:58 2007
@@ -29,6 +29,9 @@
#if ($service.PackageName != $intf.PackageName)
import ${service.PackageName}.${service.Name};
#end
+#foreach ($import in $intf.Imports)
+import ${import};
+#end
/**
* This class was generated by the CXF $version
@@ -66,7 +69,7 @@
$intf.Name port = ss.get${port.Name}();
#foreach ($method in $intf.Methods)
-
+ {
System.out.println("Invoking ${method.Name}...");
#foreach ($parameter in $method.Parameters)
#set($paramValueName = "_${method.Name}_${parameter.Name}")
@@ -90,6 +93,7 @@
#if($method.return.Type != "void")
${indent}System.out.println("${method.Name}.result=" +
_${method.Name}__return);
#end
+
#foreach ($parameter in $method.Parameters)
#if ($parameter.Style.toString() != "IN")
#set($paramValueName = "_${method.Name}_${parameter.Name}")
@@ -104,8 +108,9 @@
}#end
#end
+${indent}}
#end
-
+
System.exit(0);
}
Modified:
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
(original)
+++
incubator/cxf/trunk/tools/wsdlto/frontend/jaxws/src/main/java/org/apache/cxf/tools/wsdlto/frontend/jaxws/template/impl.vm
Thu Sep 13 01:27:58 2007
@@ -49,6 +49,10 @@
* @see $intf.PackageName.$intf.Name#${method.Name}(#foreach ($parameter
in $method.Parameters)$parameter.ClassName $parameter.Name #if ($velocityCount
!= $method.getParameters().size()),#end)#end*
*/
public $method.return.ClassName
${method.Name}(#if($method.ParameterListWithoutAnnotation.size() ==
0))#end#if($method.ParameterListWithoutAnnotation.size() != 0)#foreach($param
in
${method.ParameterListWithoutAnnotation})$param#end)#end#if($method.Exceptions.size()
> 0) throws #foreach($exception in $method.Exceptions)$exception.ClassName
#if($velocityCount != $method.Exceptions.size()),#end #end #end {
+#if ($method.Async)
+ return null;
+ /* not called */
+#else
LOG.info("Executing operation $method.Name");
#foreach ($parameter in $method.Parameters)
#if ($parameter.Style.toString() == "IN")
@@ -76,6 +80,7 @@
#if ($method.Exceptions.size() > 0)
#foreach($exception in $method.Exceptions)
//throw new ${exception.ClassName}("${exception.Name}...");
+#end
#end
#end
}
Modified:
incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java?rev=575213&r1=575212&r2=575213&view=diff
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
(original)
+++
incubator/cxf/trunk/tools/wsdlto/test/src/test/java/org/apache/cxf/tools/wsdlto/jaxws/CodeGenBugTest.java
Thu Sep 13 01:27:58 2007
@@ -693,4 +693,17 @@
fail("The cxf978.wsdl is a valid wsdl, should pass the test,
caused by: " + e.getMessage());
}
}
+
+ @Test()
+ public void testAsyncImplAndClient() throws Exception {
+ //CXF994
+ env.put(ToolConstants.CFG_COMPILE, "compile");
+ env.put(ToolConstants.CFG_OUTPUTDIR, output.getCanonicalPath());
+ env.put(ToolConstants.CFG_CLASSDIR, output.getCanonicalPath() +
"/classes");
+ env.put(ToolConstants.CFG_CLIENT, ToolConstants.CFG_CLIENT);
+ env.put(ToolConstants.CFG_WSDLURL,
getLocation("/wsdl2java_wsdl/cxf994/hello_world_async.wsdl"));
+ env.put(ToolConstants.CFG_BINDING,
getLocation("/wsdl2java_wsdl/cxf994/async.xml"));
+ processor.setContext(env);
+ processor.execute();
+ }
}
Added:
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/async.xml
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/async.xml?rev=575213&view=auto
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/async.xml
(added)
+++
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/async.xml
Thu Sep 13 01:27:58 2007
@@ -0,0 +1,29 @@
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+
+<bindings
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ wsdlLocation="hello_world_async.wsdl"
+ xmlns="http://java.sun.com/xml/ns/jaxws">
+ <bindings node="wsdl:definitions">
+ <enableAsyncMapping>true</enableAsyncMapping>
+ </bindings>
+</bindings>
Added:
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/hello_world_async.wsdl
URL:
http://svn.apache.org/viewvc/incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/hello_world_async.wsdl?rev=575213&view=auto
==============================================================================
---
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/hello_world_async.wsdl
(added)
+++
incubator/cxf/trunk/tools/wsdlto/test/src/test/resources/wsdl2java_wsdl/cxf994/hello_world_async.wsdl
Thu Sep 13 01:27:58 2007
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+<wsdl:definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+ xmlns:tns="http://apache.org/hello_world_async_soap_http"
+
xmlns:x1="http://apache.org/hello_world_async_soap_http/types"
+ xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+
targetNamespace="http://apache.org/hello_world_async_soap_http"
name="HelloWorld">
+ <wsdl:types>
+ <schema
targetNamespace="http://apache.org/hello_world_async_soap_http/types"
xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:x1="http://apache.org/hello_world_async_soap_http/types"
elementFormDefault="qualified">
+ <element name="greetMeSometime">
+ <complexType>
+ <sequence>
+ <element name="requestType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ <element name="greetMeSometimeResponse">
+ <complexType>
+ <sequence>
+ <element name="responseType" type="xsd:string"/>
+ </sequence>
+ </complexType>
+ </element>
+ </schema>
+ </wsdl:types>
+ <wsdl:message name="greetMeSometimeRequest">
+ <wsdl:part name="in" element="x1:greetMeSometime"/>
+ </wsdl:message>
+ <wsdl:message name="greetMeSometimeResponse">
+ <wsdl:part name="out" element="x1:greetMeSometimeResponse"/>
+ </wsdl:message>
+ <wsdl:portType name="GreeterAsync">
+ <wsdl:operation name="greetMeSometime">
+ <wsdl:input name="greetMeSometimeRequest"
message="tns:greetMeSometimeRequest"/>
+ <wsdl:output name="greetMeSometimeResponse"
message="tns:greetMeSometimeResponse"/>
+ </wsdl:operation>
+ </wsdl:portType>
+ <wsdl:binding name="GreeterAsync_SOAPBinding" type="tns:GreeterAsync">
+ <soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
+ <wsdl:operation name="greetMeSometime">
+ <soap:operation style="document"/>
+ <wsdl:input>
+ <soap:body use="literal"/>
+ </wsdl:input>
+ <wsdl:output>
+ <soap:body use="literal"/>
+ </wsdl:output>
+ </wsdl:operation>
+ </wsdl:binding>
+ <wsdl:service name="SOAPService">
+ <wsdl:port name="SoapPort" binding="tns:GreeterAsync_SOAPBinding">
+ <soap:address
location="http://localhost:9000/SoapContext/SoapPort"/>
+ </wsdl:port>
+ </wsdl:service>
+</wsdl:definitions>