History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: XFIRE-890
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Major Major
Assignee: Tomasz Sztelak
Reporter: Nate Johnson
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
XFire

Fault Handlers only working on global XFire Singleton. Ignored on service handlers.

Created: 26/Feb/07 07:05 AM   Updated: 02/Mar/07 10:37 AM
Component/s: Core
Affects Version/s: 1.2.4
Fix Version/s: 1.2.5

Time Tracking:
Not Specified


 Description  « Hide
Ok, so here's an update. I got my services to work in both secure and
insecure mode (that is some services are published as secure, other
insecure – not one service as both). I did this by using the handlers
on the Service objects rather than the global XFire object. Makes sense.

Here's my problem now: Faults only seem to work from the global XFire
object. So when a fault occurs, it doesn't appear that the framework
will look at the Service's handlers to handle the fault on a service by
service basis, but rather the XFire fault handlers only and since not
all services are secured, I get exceptions when wss4j headers are
expected in some cases, but not others.

I verified this by adding a secure handler to the Global XFire fault
handler, caused a fault in the insecure service and got a prolog eof
exception because the wss4j headers were missing. Then tried a secure
fault and got the real fault back in the client which is what was
expected. Flipped the scenario and got the exact opposite results.

So, what I need is the framework to use the service fault handlers when
a fault occurs (when they are registered, of course) rather than the
global handlers.

I think this is in the DefaultEndpoint class, around line 70 in the
catch block when the fault is created and piped through.

I'd be happy to test this once it is fixed.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Tomasz Sztelak - 27/Feb/07 02:35 AM
Currently the workround to this problem is to add DOMOutHandler to global handers chain. Then you can add WSS4JOutHandler to outHandlers and faultHandlers on service level. I'll commit the real fix in day or two.

Tomasz Sztelak - 28/Feb/07 02:39 AM
Fixed in svn.
Now you can use DOMFaultHandler instead of DOMOutHandler on service level.

Tomasz Sztelak - 02/Mar/07 10:37 AM
I changed my mind ( ok, Dan changed my mind . No you can use DOMOutHandler for both outHandlers and faultHandlers on service level.