Sorry but I am new with CXF and have not understand the last post Sergey
On Thu, Dec 2, 2010 at 11:52 AM, Sergey Beryozkin <[email protected]> wrote: > Having a custom CXF invoker is probably one option, it should be able to > ensure the right Method is invoked, > another option is to register a custom CXF ServletFilter which would provide > a custom HttpServletRequest which would in turn manipulate the request body > such that CXF is made to believe it is getGreeting() which has to be > invoked. > You may also want to debug and check how CXF SOAP interceptors determine the > method name and may be you can register a custom XMLStreamReader which will > make CXF to invoke getGreeting. > > Sergey > > > On Thu, Dec 2, 2010 at 10:37 AM, Manoel Farrugia <[email protected]>wrote: > >> No I have only getGreeting implemented and want that every other wrong >> request is directed to getGreeting. >> >> If one requests getGreeting2 it directs him to getGreeting. >> >> >> On Thu, Dec 2, 2010 at 11:34 AM, Sergey Beryozkin <[email protected]> >> wrote: >> > Do you actually have getGreeting2 implemented ? Example, do you have two >> > SOAP endpoints, one implementing getGreeting and one getGreeting2 and you >> > want the consumers of getGreeting2 be able to work with the old >> > getGreeting() ? >> > >> > cheers, Sergey >> > >> > On Thu, Dec 2, 2010 at 9:43 AM, Manoel Farrugia <[email protected] >> >wrote: >> > >> >> I can even scrap the idea of Interceptors if there is a better way to >> >> do my wanted job! >> >> >> >> Instead of receiving soap:ServerNo such operation: getGreeting2 (HTTP >> >> GET PATH_INFO: /HelloWorldWebServices/HelloWorldPort/getGreeting2) I >> >> want to see the getGreeting response! >> >> >> >> How can I do it in CXF Web Services? >> >> >> >> >> >> >> >> On Wed, Dec 1, 2010 at 8:10 PM, Manoel Farrugia <[email protected]> >> >> wrote: >> >> > I am not restricted to handleFault only. I want to redirect any wrong >> >> > methods to getGreeting() method. >> >> > >> >> > On Wed, Dec 1, 2010 at 8:07 PM, Daniel Kulp <[email protected]> wrote: >> >> >> >> >> >> On Wednesday 01 December 2010 5:49:41 am Manoel Farrugia wrote: >> >> >> > Something like this: >> >> >> > >> >> >> > public void handleFault(Message message) { >> >> >> > System.out.println("------FAAAAAUUUUUUUULLLLLLTTTTTT-------"); >> >> >> > >> >> >> > String path = (String)message.get(Message.PATH_INFO); >> >> >> > String basePath = (String)message.get(Message.BASE_PATH); >> >> >> > String query = (String)message.get(Message.QUERY_STRING); >> >> >> > System.out.println("Path: "+path+". BasePath: "+basePath+". >> >> Query: >> >> >> > "+query+"."); >> >> >> > System.out.println("------FAAAAAUUUUUUUULLLLLLTTTTTT-------"); >> >> >> > >> >> >> > message.put(Message.PATH_INFO, >> >> >> > "/HelloWorldWebServices/HelloWorldPort/getGreeting"); >> >> >> > >> >> >> > path = (String)message.get(Message.PATH_INFO); >> >> >> > System.out.println("NEW PATH: "+path); >> >> >> > } >> >> >> > >> >> >> > That is changing the message's pathinfo from the wrong one >> >> >> > to /HelloWorldWebServices/HelloWorldPort/getGreeting >> >> >> > >> >> >> > But I want to direct to >> >> >> > /HelloWorldWebServices/HelloWorldPort/getGreeting >> >> >> > from the handleFault method. >> >> >> > How should I do this? >> >> >> >> >> >> From handleFault? Hmm... No idea really. >> >> >> >> >> >> You could TRY to do something like >> >> >> message.getInterceptorChain().reset(); >> >> >> message.getIntercetporChain().processMessage(message); >> >> >> message.getInterceptorChain().pause(); >> >> >> >> >> >> or similar. I really have no idea what that would do. Honestly, >> once >> >> >> the >> >> >> fault occurs, things are somewhat left in an unpredictable state and >> I'm >> >> >> not >> >> >> sure what would happen. >> >> >> >> >> >> Dan >> >> >> >> >> >> >> >> >> >> >> >> > >> >> >> > On Tue, Nov 30, 2010 at 10:01 PM, Daniel Kulp <[email protected]> >> >> wrote: >> >> >> > > On Tuesday 30 November 2010 5:31:10 am Manoel Farrugia wrote: >> >> >> > > > As a web service I have a getGreeting() method which is >> accessed >> >> by: >> >> >> > > >> >> >> > > >> >> >> http://localhost:8080/HelloWorldWebServices/services/HelloWorldPort/getGr >> >> >> > > ee >> >> >> > > >> >> >> > > > ting< >> >> >> > > >> >> >> > > >> >> http://localhost:8080/HelloWorldWebServices/services/HelloWorldPort/ge >> >> >> > > >> >> >> > > > tGreeting1?arg0=Manoel> >> >> >> > > > >> >> >> > > > Now I want that any other request method which does not exist >> in >> >> my >> >> >> > > > web >> >> >> > > > service (for example getGreetingMe()) is redirected to >> >> getGreeting() >> >> >> > > > as >> >> >> > > >> >> >> > > the >> >> >> > > >> >> >> > > > address above. >> >> >> > > > >> >> >> > > > How should I tackle this idea? >> >> >> > > >> >> >> > > If this is just for the "GET" requests, it shouldn't be too >> hard. >> >> >> > > >> >> >> > > String path = (String)message.get(Message.PATH_INFO); >> >> >> > > String basePath = (String)message.get(Message.BASE_PATH); >> >> >> > > String query = (String)message.get(Message.QUERY_STRING); >> >> >> > > >> >> >> > > would get you the values that were sent in. You would just need >> to >> >> >> > > reset >> >> >> > > them >> >> >> > > to the "getGreeting" versions of those via message.put(...) type >> >> >> > > things. >> >> >> > > >> >> >> > > -- >> >> >> > > Daniel Kulp >> >> >> > > [email protected] >> >> >> > > http://dankulp.com/blog >> >> >> >> >> >> -- >> >> >> Daniel Kulp >> >> >> [email protected] >> >> >> http://dankulp.com/blog >> >> > >> >> > >> >> >> > >> >
