You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@cxf.apache.org by "Daniel Kulp (JIRA)" <ji...@apache.org> on 2007/06/12 19:34:25 UTC

[jira] Assigned: (CXF-724) Interceptor ordering declared programmatically is being overriden by configuration

     [ https://issues.apache.org/jira/browse/CXF-724?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Daniel Kulp reassigned CXF-724:
-------------------------------

    Assignee: Daniel Kulp

> Interceptor ordering declared programmatically is being overriden by configuration
> ----------------------------------------------------------------------------------
>
>                 Key: CXF-724
>                 URL: https://issues.apache.org/jira/browse/CXF-724
>             Project: CXF
>          Issue Type: Bug
>          Components: Core
>         Environment: OS X
>            Reporter: Fred Dushin
>            Assignee: Daniel Kulp
>             Fix For: 2.0
>
>
> The WSS4JInInterceptor has a dependency on the SAAJInInterceptor, and this is declared programmatically, in the WSS4JInInterceptor ctor, as follows:
> {{{
>     public WSS4JInInterceptor() {
>         super();
>         setPhase(Phase.PRE_PROTOCOL);
>         getAfter().add(SAAJInInterceptor.class.getName());
>     }
> }}}
> When I run this interceptor with the following configuration:
> {{{
>     <jaxws:endpoint name="{http://www.acme.com}GreeterPort" createdFromAPI="true">
>          <jaxws:inInterceptors>
>              <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
>              <ref bean="WSS4JInInterceptor"/>
>          </jaxws:inInterceptors>
>     </jaxws:endpoint>
> }}}
> the interceptor fails on line 117 with the error: NO_SAAJ_DOC
> And the line of code is:
> {{{
>             if (doc == null) {
>                 throw new SoapFault(new Message("NO_SAAJ_DOC", LOG), version.getReceiver());
>             }
> }}}
> Looking at the logs (with full tracing), I see the following interceptor list:
> {{{
> pre-protocol [WSSJaxBInterceptor, WSSUsernameTokenCredentialsCollector, WSSBinarySecurityTokenCredentialsCollector, WSS4JInInterceptor, WSSX509CertificateCredentialsCollector, MustUnderstandInterceptor, SOAPHandlerInterceptor, LogicalHandlerInInterceptor, SAAJInInterceptor]
> }}}
> For some reason, the SAAJInInterceptor is being placed last in the phase.
> If, on the other hand, I /reverse/ the order of definition in config, to read:
> {{{
>     <jaxws:endpoint name="{http://www.acme.com}GreeterPort" createdFromAPI="true">
>          <jaxws:inInterceptors>
>              <ref bean="WSS4JInInterceptor"/>
>              <bean class="org.apache.cxf.binding.soap.saaj.SAAJInInterceptor"/>
>          </jaxws:inInterceptors>
>     </jaxws:endpoint>
> }}}
> the interceptor list instead reads:
> {{{
> pre-protocol [WSSJaxBInterceptor, WSSUsernameTokenCredentialsCollector, WSSBinarySecurityTokenCredentialsCollector, SAAJInInterceptor, WSS4JInInterceptor, WSSX509CertificateCredentialsCollector, MustUnderstandInterceptor, SOAPHandlerInterceptor, LogicalHandlerInInterceptor]
> }}}
> and the interceptor functions correctly (because the SAAJInInterceptor is getting called before the WSS4JInInterceptor.
> This bug is being filed in the context of the WSS4JInInterceptor, but it probably applies to other interceptor types, as well.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.