Ian, there are several tests in axis test harness for testing these scenarios and several test cases in jaxrpc tck as well. so we should be all set...IF you see a problem scenario, can you please refine the axis tests? (test\wsdl\jaxrpchandler**) and open a bug report? I feel all the cases are covered though i don't remember exactly the implementation detail off the top of my head.
-- dims On Mon, 14 Mar 2005 18:44:26 -0500, Ian Springer <[EMAIL PROTECTED]> wrote: > Davanum Srinivas wrote: > > >see HandlerChainImpl > > > >-- dims > > > > > > > Dims, > > I did see that class. However, looking at JAXRPCHandler, it basically > always creates a HandlerChainImpl that contains only a single handler, > the one specified via the className option in the wsdd. Also, > JAXRPCHandler#invoke() ignores the return values of handleRequest() and > handleResponse(), and JAXRPCHandler#onFault() ignores the return value > of handleFault(). So it looks to me like if one of my JAX-RPC Handler's > handle*() methods returns false, HandlerChainImpl will also return > false, but JAXRPCHandler never propogates this to the rest of the Axis > handler chain. So the request will still get passed through any other > Axis handlers, including other JAX-RPC handlers, that are configured in > the wsdd. Or am I missing something? > > Ian > > >--- Ian Springer <[EMAIL PROTECTED]> wrote: > > > > > >>Leonardo Campanale wrote: > >> > >> > >> > >>>Finally I was able to write a class (handler) able to intercept the > >>>call and reroute the message to a final destination. > >>>To do this I wrote the handleRequest where I had to call the service > >>>through the To field of the ws-a headers and I had to save the > >>>response in some way (in a map) > >>>On the return path toward the client I had to intercept the response > >>>message (handleResponse) and I substituted the message with the saved > >>>value. > >>>What happens now is that in my handleRequest I forward the message to > >>>the desided address, but the call continues also to be sent to the > >>>TargetEndpointAddress specified in the client call. As a consequence > >>>of this behavior sometimes this second call fails (for example bacause > >>>of different signatures between the desired service and the endpoint > >>>service ). To face this scenario I had to override also the > >>>handleFault method in my handler. > >>>So the problem is now that, on the handleRequest, it would be better > >>>to stop the message path on the server and use this handler as a > >>>pivot, in order to avoid that the original service is called. > >>>How is it possible? > >>> > >>> > >>JAX-RPC says that handleRequest() can return false to short-circuit > >>further processing of the handler chain, as well as prevent dispatching > >>to the target endpoint - see section 12.2.2 of the JAX-RPC 1.1 spec. > >>Unfortunately, looking at org.apache.axis.handlers.JAXRPCHandler, it > >>doesn't look to me as if Axis complies with this part of the spec. > >> > >>Ian > >> > >> > >> > >> > > > >Davanum Srinivas - http://webservices.apache.org/~dims/ > > > > > > > > > > > > -- Davanum Srinivas - http://webservices.apache.org/~dims/
