Any particular reason you would want an xfire fault in your client?

Web services man! Your clients shouldn't know anything about the infrastructure 
your service is running on. :)

Your wsdl should define the faults that your operation can experience.  Decent 
web service clients can catch the named faults in the wsdl.

Not using contract first?  Don't worry!  Xfire will turn any of the exceptions 
in the throws clause of your web methods into a named fault for you quite 
nicely.

Cheers,
Karl P
 

> -----Original Message-----
> From: Alekh [mailto:[EMAIL PROTECTED] 
> Sent: Thursday, January 11, 2007 12:39 PM
> To: [email protected]
> Subject: [xfire-user] Problem in receiving XFireFault at the 
> client - "No backchannel exists for message"
> 
> 
> I have deployed a web service using XFire which has the 
> following method :
> 
> public void requestOrder(RequestOrderRequest requestOrderRequest){
> 
>    if(requestOrderRequest != null)
>               throw SOAPFaultFactory.createSOAPFaultException(new
> MSupOServiceException("Invalid Incoming XML","Invalid Incoming XML"));
> 
> }
> 
> I want to simply throw an exception and catch it as an 
> XFireFault in my client. In order to make sure that 
> XFireFault is being generated, I have added a fault handler 
> and am able to check out my fault there. However, at the 
> client end I am unable to catch the fault as a runtime 
> exception. The exception generated is -
> 
> 
> 2007-01-11 16:58:41,328 62610 DEBUG
> [org.codehaus.xfire.handler.HandlerPipeline] (Thread-9:) 
> Invoking phase send
> 2007-01-11 16:58:41,328 62610 DEBUG
> [org.codehaus.xfire.handler.HandlerPipeline] (Thread-9:) 
> Invoking handler org.codehaus.xfire.fault.FaultSender in phase send
> 2007-01-11 16:58:41,328 62610 ERROR
> [org.codehaus.xfire.handler.DefaultFaultHandler] (Thread-9:) 
> Could not send fault.
> org.codehaus.xfire.XFireRuntimeException: No backchannel 
> exists for message
>       at
> org.codehaus.xfire.transport.http.XFireServletChannel.send(XFi
> reServletChannel.java:41)
>       at 
> org.codehaus.xfire.fault.FaultSender.invoke(FaultSender.java:37)
>       at
> org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipel
> ine.java:131)
>       at
> org.codehaus.xfire.handler.DefaultFaultHandler.sendFault(Defau
> ltFaultHandler.java:88)
>       at
> org.codehaus.xfire.handler.DefaultFaultHandler.invoke(DefaultF
> aultHandler.java:51)
>       at
> org.codehaus.xfire.service.binding.ServiceInvocationHandler$1.
run(ServiceInvocationHandler.java:97)
>       at java.lang.Thread.run(Thread.java:595)
> 
> I have no clue how to provide 'backchannel' for my 
> webservice. I would be grateful for any help.
> 
> Note: My method is of type 'void', can it be a problem ?
> --
> View this message in context: 
> http://www.nabble.com/Problem-in-receiving-XFireFault-at-the-c
> lient---%22No-backchannel-exists-for-message%22-tf2958583.html
> #a8276635
> Sent from the XFire - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
> 
>     http://xircles.codehaus.org/manage_email
> 
> 

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email

Reply via email to