struts-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Becky O'Sullivan (JIRA)" <j...@apache.org>
Subject [jira] Created: (WW-2745) struts.xml includes not loading in order, or not loading parent
Date Fri, 01 Aug 2008 16:33:07 GMT
struts.xml includes not loading in order, or not loading parent
---------------------------------------------------------------

                 Key: WW-2745
                 URL: https://issues.apache.org/struts/browse/WW-2745
             Project: Struts 2
          Issue Type: Bug
          Components: XML Configuration
    Affects Versions: 2.1.2
         Environment: Struts 2.1.2, Weblogic 10
            Reporter: Becky O'Sullivan


In Struts 2.1.2 I attempted to break struts.xml into multiple files becuase it was getting
too big. 

Starting here: http://struts.apache.org/2.x/docs/can-we-break-up-a-large-strutsxml-file-into-smaller-pieces.html

Specifically from that page:
"You can use <include> elements in your struts.xml interchangeably with <package>
elements. The configuration objects will be loaded in the order of appearance. The framework
reads the configuration from top to bottom and adds objects as they are referenced."

Following the note above I added an included file *after* my base package (where some interceptor
stacks are defined).

For example (new copy of struts.xml):

<!DOCTYPE struts PUBLIC   "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="baseEAP" extends="struts-default" abstract="true">
        <interceptors>
            <interceptor name="DataPrep" class="xx" />

            <interceptor-stack name="dataPrepStack">
                <interceptor-ref name="defaultStack"/>
                <interceptor-ref name="DataPrep"/>
            </interceptor-stack>
        </interceptors>
    </package>

    <include file="struts-ajax.xml" />

    ....(lots of packages that extend baseEAP)...

</struts>


All other packages extend baseEAP, and some actions reference the interceptor stack dataPrepStack
-- it works great.  
I pulled one of those working packages out of struts.xml and placed it in its own file.  The
code above shows where <include file...> was inserted below the baseEAP package declaration.
 No other changes were made.

In the separate file (struts-ajax.xml) the package signature is exactly the same as it was
in struts.xml:
<!DOCTYPE struts PUBLIC
  "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
  "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
    <package name="ajax" extends="baseEAP,gwt-default">
        <action name="ajaxManageMenus" class="xx">
            <interceptor-ref name="dataPrepStack" />
            <interceptor-ref name="gwt"/>
        </action>
    </package>
</struts>

Unfortunately the xml files would not load upon deployment:

<Jul 31, 2008 9:55:49 AM PDT> <Error> <HTTP> <BEA-101165> <Could
not load user defined filter in web.xml:
org.apache.struts2.dispatcher.FilterDispatcher.
Unable to load configuration. - interceptor-ref -file:/C:/workspace_bea10/xx/exploded/xx.ear/xx.war/WEB-INF/classes/struts-ajax.xml:10:53
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:371)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:424)
        at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:213)
        at weblogic.servlet.internal.FilterManager$FilterInitAction.run(FilterManager.java:320)
        Truncated. see log file for complete stacktrace
Unable to find interceptor class referenced by ref-name dataPrepStack - interceptor-ref -
file:/C:/workspace_bea10/xx/exploded/xx.ear/xx.war/WEB-INF/classes/struts-ajax.xml:10:53
        at com.opensymphony.xwork2.config.providers.InterceptorBuilder.constructInterceptorReference(InterceptorBuilder.java:46)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.lookupInterceptorReference(XmlConfigurationProvider.java:1081)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.buildInterceptorList(XmlConfigurationProvider.java:536)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:374)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:465)
...

Note: Company-specific data was replaced with "xx"

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


Mime
View raw message