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.