Hello:
I'm curious about one thing on asynchronous call, by using a JAX-WS
proxy-client
If I define WRAPPED as SOAP binding ( ie. default ) in SEI , and I
define a AsyncHandler class as a subclass of AsyncHandler<String>
, I get the next exception when performing a asyncronous call to
'send' method, by using a JAX-WS proxy-client
java.lang.ClassCastException:
com.example.email.client.jaxws_asm.SendResponse cannot be cast to
java.lang.String
at
com.example.email.client.EmailAsyncHandler.handleResponse(EmailAsyncHandler.java:20)
at
org.apache.cxf.jaxws.JaxwsClientCallback.handleResponse(JaxwsClientCallback.java:44)
This is my AsyncHandler class
public class EmailAsyncHandler implements AsyncHandler<String>
{
public void handleResponse(Response<String> response)
{
try
{
System.out.println("Asynchronous response:" + response.get());
}
catch (Exception ex)
{
ex.printStackTrace();
}
}
}
If I use an own SendResponse type as response wrapper type, it works
fine when I perform an asynchronous call
If I use String as request type, it works fine ( Why doesn't need a
Send wrapper type ? . I guess cause of asm generated itself but I
don't know ...)
If I perform a synchronous call with a String as return type (String
send(String text) ) , it works fine . I mean, asm does its job
generating wrappers in runtime
It's not a problem for me to using my own wrappers types, but I don't
understand ** why CXF cannot cast jaxws_asm.SendResponse to String
when calls handleResponse method **
Thanks and regards