Andrea Smyth <[EMAIL PROTECTED]> writes:
> This is very odd indeed.
I think I found the problem. Class
org.apache.cxf.tools.
wsdlto.frontend.jaxws.processor.internal.
OperationProcessor
contains a method isAddedAsyMethod(JavaMethod). This method gets
called on from from within processMethod(), around line 109. In my
case, my method is not one-way, "enableAsync" is true, but
isAddedAsyMethod() returns true, so addAsyncMethod() never gets
called. Here's why.
The isAddedAsyMethod() checks to see how a method's "operation name"
and "method name" are related to other methods in the same interface;
if a given "method name" does not equal the main method's "operation
name", but the method's "operation name" does equal the main method's
"operation name", the outcome is true, indicating that an
asynchronous method has already been defined.
In my case, the main method's "operation name" is "regimen-rx" and its
"method name" is "regimenRx" . For the first test,
"regimenrx" does not equal "regimen-rx"
and for the second test,
"regimen-rx" does equal "regimen-rx"
so isAddedAsyMethod() returns true.
This test is missing out on the possibility that "primary" method
names and operation names may differ in more than case.
Somewhere else in the wsdl2java process my non-Java-friendly operation
name was munged into an acceptable Java method name. Perhaps
isAddedAsyMethod() should take this munging into account as well.
--
Steven E. Harris