XFire
  1. XFire
  2. XFIRE-890

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

    Details

    • Type: Bug Bug
    • Status: Resolved Resolved
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.2.4
    • Fix Version/s: 1.2.5
    • Component/s: Core
    • Labels:
      None
    • Number of attachments :
      0

      Description

      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.

        Activity

        Hide
        Tomasz Sztelak added a comment -

        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.

        Show
        Tomasz Sztelak added a comment - 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.
        Hide
        Tomasz Sztelak added a comment -

        Fixed in svn.
        Now you can use DOMFaultHandler instead of DOMOutHandler on service level.

        Show
        Tomasz Sztelak added a comment - Fixed in svn. Now you can use DOMFaultHandler instead of DOMOutHandler on service level.
        Hide
        Tomasz Sztelak added a comment -

        I changed my mind ( ok, Dan changed my mind . No you can use DOMOutHandler for both outHandlers and faultHandlers on service level.

        Show
        Tomasz Sztelak added a comment - I changed my mind ( ok, Dan changed my mind . No you can use DOMOutHandler for both outHandlers and faultHandlers on service level.

          People

          • Assignee:
            Tomasz Sztelak
            Reporter:
            Nate Johnson
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: