[
https://issues.apache.org/jira/browse/CXF-4104?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
David Liu updated CXF-4104:
---------------------------
Description:
It looks like CXF 2.2.10 can only generate a wrapped async method when we set
enableAsyncMapping. After I change enableWrapperStyle=false, it failed to
generate Bare style Async method.
Is it a known issue? Do we have workaround? thanks.
Please see test below:
{code:title=binding.xml}
<jaxws:bindings wsdlLocation="http://localhost:7650/Calculator?wsdl"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxws:bindings node="wsdl:definitions">
<jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
</jaxws:bindings>
</jaxws:bindings>
{code}
{code:title=generated HelloWorld.java}
@WebService(targetNamespace = "http://helloworld.webservice.com", name =
"HelloWorld")
@XmlSeeAlso({ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface HelloWorld {
@WebMethod(operationName = "sayHello")
public Response<test.client.generated.SayHelloResponse> sayHelloAsync(
@WebParam(name = "name", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String name,
@WebParam(name = "another", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String another,
@WebParam(name = "timestamp", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String timestamp
);
@WebMethod(operationName = "sayHello")
public Future<?> sayHelloAsync(
@WebParam(name = "name", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String name,
@WebParam(name = "another", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String another,
@WebParam(name = "timestamp", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String timestamp,
@WebParam(name = "asyncHandler", targetNamespace = "")
AsyncHandler<test.client.generated.SayHelloResponse> asyncHandler
);
@WebResult(name = "sayHelloResponse", targetNamespace =
"http://helloworld.webservice.com", partName = "parameters")
@WebMethod
public SayHelloResponse sayHello(
@WebParam(partName = "parameters", name = "sayHello", targetNamespace =
"http://helloworld.webservice.com")
SayHello parameters
);
}
{code}
David
was:
It looks like CXF 2.2.10 can only generate a wrapped async method when we set
enableAsyncMapping. After I change enableWrapperStyle=false, it failed to
generate Bare style Async method. Please see test below:
{code:title=binding.xml}
<jaxws:bindings wsdlLocation="http://localhost:7650/Calculator?wsdl"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<jaxws:bindings node="wsdl:definitions">
<jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
<jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
</jaxws:bindings>
</jaxws:bindings>
{code}
{code:title=generated HelloWorld.java}
@WebService(targetNamespace = "http://helloworld.webservice.com", name =
"HelloWorld")
@XmlSeeAlso({ObjectFactory.class})
@SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
public interface HelloWorld {
@WebMethod(operationName = "sayHello")
public Response<test.client.generated.SayHelloResponse> sayHelloAsync(
@WebParam(name = "name", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String name,
@WebParam(name = "another", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String another,
@WebParam(name = "timestamp", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String timestamp
);
@WebMethod(operationName = "sayHello")
public Future<?> sayHelloAsync(
@WebParam(name = "name", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String name,
@WebParam(name = "another", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String another,
@WebParam(name = "timestamp", targetNamespace =
"http://helloworld.webservice.com")
java.lang.String timestamp,
@WebParam(name = "asyncHandler", targetNamespace = "")
AsyncHandler<test.client.generated.SayHelloResponse> asyncHandler
);
@WebResult(name = "sayHelloResponse", targetNamespace =
"http://helloworld.webservice.com", partName = "parameters")
@WebMethod
public SayHelloResponse sayHello(
@WebParam(partName = "parameters", name = "sayHello", targetNamespace =
"http://helloworld.webservice.com")
SayHello parameters
);
}
{code}
> wsdl2java generates Wrapped async method for Bare
> -------------------------------------------------
>
> Key: CXF-4104
> URL: https://issues.apache.org/jira/browse/CXF-4104
> Project: CXF
> Issue Type: Bug
> Components: Core, Tooling
> Affects Versions: 2.2.10
> Reporter: David Liu
>
> It looks like CXF 2.2.10 can only generate a wrapped async method when we
> set enableAsyncMapping. After I change enableWrapperStyle=false, it failed to
> generate Bare style Async method.
> Is it a known issue? Do we have workaround? thanks.
> Please see test below:
> {code:title=binding.xml}
> <jaxws:bindings wsdlLocation="http://localhost:7650/Calculator?wsdl"
> xmlns:jaxws="http://java.sun.com/xml/ns/jaxws"
> xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:xs="http://www.w3.org/2001/XMLSchema">
> <jaxws:bindings node="wsdl:definitions">
> <jaxws:enableAsyncMapping>true</jaxws:enableAsyncMapping>
> <jaxws:enableWrapperStyle>false</jaxws:enableWrapperStyle>
> </jaxws:bindings>
> </jaxws:bindings>
> {code}
> {code:title=generated HelloWorld.java}
> @WebService(targetNamespace = "http://helloworld.webservice.com", name =
> "HelloWorld")
> @XmlSeeAlso({ObjectFactory.class})
> @SOAPBinding(parameterStyle = SOAPBinding.ParameterStyle.BARE)
> public interface HelloWorld {
> @WebMethod(operationName = "sayHello")
> public Response<test.client.generated.SayHelloResponse> sayHelloAsync(
> @WebParam(name = "name", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String name,
> @WebParam(name = "another", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String another,
> @WebParam(name = "timestamp", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String timestamp
> );
> @WebMethod(operationName = "sayHello")
> public Future<?> sayHelloAsync(
> @WebParam(name = "name", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String name,
> @WebParam(name = "another", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String another,
> @WebParam(name = "timestamp", targetNamespace =
> "http://helloworld.webservice.com")
> java.lang.String timestamp,
> @WebParam(name = "asyncHandler", targetNamespace = "")
> AsyncHandler<test.client.generated.SayHelloResponse> asyncHandler
> );
> @WebResult(name = "sayHelloResponse", targetNamespace =
> "http://helloworld.webservice.com", partName = "parameters")
> @WebMethod
> public SayHelloResponse sayHello(
> @WebParam(partName = "parameters", name = "sayHello", targetNamespace
> = "http://helloworld.webservice.com")
> SayHello parameters
> );
> }
> {code}
> David
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira