Can someone help me understand how to use custom interceptors with the convention plugin?

In my struts.xml I have:

           <interceptor-stack name="defaultAuthenticationStack">
               <interceptor-ref name="initialStack"/>
               <interceptor-ref name="autoLoginStack"/>
               <!-- now check for authentication -->
               <interceptor-ref name="authenticationRequired"/>
               <interceptor-ref name="endingStack"/>
           </interceptor-stack>



Currently, we use a package via XML config and it works as expected:

   <package name="account" namespace="/account" extends="default">
       <default-interceptor-ref name="defaultAuthenticationStack"/>
   </package>

But ideally we could use the convention plugin like this:

@InterceptorRef("defaultAuthenticationStack")
@Namespace("/account" )
public class UserAccount extends ActionSupport
{
....
}

When trying to init the framework I see my struts.xml file get loaded but when the convention plugin tries to process the actions I get the following error: 2009-04-09 14:13:52,358 INFO iders.XmlConfigurationProvider - Parsing configuration file [struts-default.xml] 2009-04-09 14:13:52,600 INFO iders.XmlConfigurationProvider - Parsing configuration file [struts-plugin.xml] 2009-04-09 14:13:52,972 INFO iders.XmlConfigurationProvider - Parsing configuration file [struts.xml] 2009-04-09 14:13:53,174 INFO spring.SpringObjectFactory - Setting autowire strategy to name Caused by: Unable to find interceptor class referenced by ref-name defaultAuthenticationStack - [unknown location] at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:52) at org.apache.struts2.convention.DefaultInterceptorMapBuilder.buildInterceptorList(DefaultInterceptorMapBuilder.java:99) at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:90) at org.apache.struts2.convention.DefaultInterceptorMapBuilder.build(DefaultInterceptorMapBuilder.java:68) at org.apache.struts2.convention.PackageBasedActionConfigBuilder.createActionConfig(PackageBasedActionConfigBuilder.java:676) at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildConfiguration(PackageBasedActionConfigBuilder.java:479) at org.apache.struts2.convention.PackageBasedActionConfigBuilder.buildActionConfigs(PackageBasedActionConfigBuilder.java:278) at org.apache.struts2.convention.ClasspathPackageProvider.loadPackages(ClasspathPackageProvider.java:52) at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:200) at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
   ... 15 more

I noticed on the convention-plugin page that there is a reference to using a default interceptor stack and a custom interceptor but not a custom interceptor stack. I assumed you could use either.
@InterceptorRefs({
@InterceptorRef("interceptor-1"),
@InterceptorRef("defaultStack")
})
public class HelloWorld extends ActionSupport
{}


Ideas?

Thanks
-Ryan

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@struts.apache.org
For additional commands, e-mail: user-h...@struts.apache.org

Reply via email to