After talking with Sebastien the other day, it appears Axis1 uses reflection to make invocations, requiring entry points to return proxies implementing the exposed service (Axis2 appears different). So, I changed getInstance(..) to return a generated proxy - if you don't need a proxy, get the InvocationHandler directly using getImplementationInstance() as in:

             AggregateContext aggregateContext = ...
EntryPointContext ctx = (EntryPointContext) aggregateContext.getContext("source");
             Assert.assertNotNull(ctx);
InvocationHandler handler = (InvocationHandler) ctx.getImplementationInstance(); Object response = handler.invoke(null, operation, new Object[] { param });

I updated the Axis2 code to do this (WebServiceEntryPointInOutSyncMessageReceiver) as well as the test cases. Sebastien, Axis1 still creates the proxy using the ProxyFactory from the entry point. I included a FIXME but did not change this as I think this change will be conntected to the discussion on getAggregate().

Jim

Reply via email to