I am having some trouble with getting the input to an asynchronous service
operation processed correctly using a JAXB databinding.   I have tracked it
down to the following:

* JAXWSJavaInterfaceProcessor introspects the actual asynchronous Java
interface (i.e. the one with xxxAsync methods), and sets wrapper information
into the Operation objects.

* Subsequently when JavaInterfaceImpl.getOperations() is called, it
constructs a list of equivalent synchronous Operation objects and returns
that.  These Operation objects lack the wrapper information.

It seems like JAXWSJavaInterfaceProcessor, and possibly other introspectors,
need to be made sensitive to whether an asynchronous service interface is
being processed and adjust accordingly (e.g. not treat ResposeDispatch as
part of the business interface).

It seems like JavaInterfaceImpl.getOperations() needs to preserve the work
of the introspectors by copying/cloning the original Operation elements.  Or
maybe JavaInterfaceIntrospectorImpl should just build the Operation elements
correctly in the first place?  Is there any reason to build them for the
original async interface and then try to swizzle them at the end?  That
approach seems to hope it can hide the impact of async, but I'm not sure
whether that's a good idea or not.

Greg

Reply via email to