Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-5581

The soap faults are being sent through InFlow pipe rather than InFaultFlow pipe.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • 1.4
    • 1.4
    • TCP transport

    Description

      We are using IBM Tivoli Directory Integrator v7.1.1 to create a solution to call Remote Webservices. IBM TDI Web service suite uses the apache axis2 to invoke the webservices.

      The requirement is such that, the web services is sending a response with a wsse:security header. I have developed a custom handler and used it in the InFlow PhaseOrder after the dispatch phase,(by creating a custom phase and adding the handler to it) of the axis2.xml file.

      But during the, if the web service return a soap-fault, then the instead of the InfaultFlow phaseOrder, inFlow phaseOrder is being used.

      <phaseOrder type="InFlow">
      <!-- System predefined phases -->
      <phase name="Transport">
      <handler name="RequestURIBasedDispatcher"
      class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher">
      <order phase="Transport"/>
      </handler>
      <handler name="SOAPActionBasedDispatcher"
      class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher">
      <order phase="Transport"/>
      </handler>
      </phase>
      <phase name="Addressing">
      <handler name="AddressingBasedDispatcher"
      class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
      <order phase="Addressing"/>
      </handler>
      </phase>
      <phase name="Security"/>
      <phase name="PreDispatch"/>
      <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
      <handler name="RequestURIBasedDispatcher"
      class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
      <handler name="SOAPActionBasedDispatcher"
      class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
      <handler name="RequestURIOperationDispatcher"
      class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
      <handler name="SOAPMessageBodyBasedDispatcher"
      class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
      <handler name="HTTPLocationBasedDispatcher"
      class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
      <handler name="GenericProviderDispatcher"
      class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
      <handler name="MustUnderstandValidationDispatcher"
      class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
      </phase>
      <phase name="RMPhase"/>
      <!-- System predefined phases -->
      <phase name="CustomSoapHeaderValidation">
      <handler name="SecurityHeaderValidator"
      class="com.test.service.phase.handler.SecurityHeaderHandler"/>
      </phase>
      <!-- After Postdispatch phase module author or service author can add any phase he want -->
      <phase name="OperationInPhase">
      <handler name="MustUnderstandChecker"
      class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker">
      <order phase="OperationInPhase"/>
      </handler>
      </phase>
      <phase name="soapmonitorPhase"/>
      </phaseOrder>
      <phaseOrder type="OutFlow">
      <!-- user can add his own phases to this area -->
      <phase name="soapmonitorPhase"/>
      <phase name="OperationOutPhase"/>
      <!-system predefined phase->
      <!-these phase will run irrespective of the service->
      <phase name="RMPhase"/>
      <phase name="PolicyDetermination"/>
      <phase name="MessageOut"/>
      <phase name="Security"/>
      </phaseOrder>
      <phaseOrder type="InFaultFlow">
      <phase name="Addressing">
      <handler name="AddressingBasedDispatcher"
      class="org.apache.axis2.dispatchers.AddressingBasedDispatcher">
      <order phase="Addressing"/>
      </handler>
      </phase>
      <phase name="Security"/>
      <phase name="PreDispatch"/>
      <phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase">
      <handler name="RequestURIBasedDispatcher"
      class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/>
      <handler name="SOAPActionBasedDispatcher"
      class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/>
      <handler name="RequestURIOperationDispatcher"
      class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/>
      <handler name="SOAPMessageBodyBasedDispatcher"
      class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/>
      <handler name="HTTPLocationBasedDispatcher"
      class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/>
      <handler name="GenericProviderDispatcher"
      class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/>
      <handler name="MustUnderstandValidationDispatcher"
      class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDispatcher"/>
      </phase>
      <phase name="RMPhase"/>
      <!-- user can add his own phases to this area -->
      <phase name="OperationInFaultPhase"/>
      <phase name="soapmonitorPhase"/>
      </phaseOrder>
      <phaseOrder type="OutFaultFlow">
      <!-- user can add his own phases to this area -->
      <phase name="soapmonitorPhase"/>
      <phase name="OperationOutFaultPhase"/>
      <phase name="RMPhase"/>
      <phase name="PolicyDetermination"/>
      <phase name="MessageOut"/>
      <phase name="Security"/>
      </phaseOrder>

      Attachments

        1. usingDefaultAxis2Xml.log
          15 kB
          Syed Ahmed Jeelani
        2. usingCustomConfigAxis2XML.log
          17 kB
          Syed Ahmed Jeelani

        Activity

          People

            Unassigned Unassigned
            syed_jeelani Syed Ahmed Jeelani
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 48h
                48h
                Remaining:
                Remaining Estimate - 48h
                48h
                Logged:
                Time Spent - Not Specified
                Not Specified