I have an intermittent problem possibly related to session creation or
Interceptor configuration.  In a few words, when a browser is first opened
and a valid action is requested, an exception is returned.  After I request
the base application name with no action, a successful response is returned,
and then I can request any action.

In detail:

- When following a hyperlink to a page with or without parameters, error
- when closing / opening browser and going directly to any valid action, get
error
- when closing / opening browser and going directly to anything that would
invoke the default action, get error

- after trying these things, there is no error when requesting the
application by base name alone, with no action in the URL
- once this has been done, the above things that didn't work, now work

- I have a customer interceptor before 'prepare'.  when request.getSession()
is called, a session object is returned (as expected)
- this interceptor calls session.setAttribute() to set various parameters
- my action class implements SessionAware (and Preparable) to obtain the
sessionMap object
- following the above actions that result in errors, sessionMap is empty
when called in the Preparable method
- when the application is working, sessionMap is not empty as expected

My interceptor configuration in struts.xml looks like:
                <interceptors>
            <interceptor name="mySpecificLocale"
class="com.mndigi.notes.util.LocaleInterceptor" />
                <interceptor-stack name="defaultLocaleStack">
                        <interceptor-ref name="exception"/>
                <interceptor-ref name="alias"/>                
                <interceptor-ref name="i18n"/>
                        <interceptor-ref name="mySpecificLocale" />             
        
                        <interceptor-ref name="servletConfig"/> 
                <interceptor-ref name="prepare"/>
                <interceptor-ref name="chain"/>
                <interceptor-ref name="debugging"/>
                <interceptor-ref name="profiling"/>
                <interceptor-ref name="scopedModelDriven"/>
                <interceptor-ref name="modelDriven"/>
                                <interceptor-ref name="fileUpload">
                                  <!-- struts.properties value is checked 
first.  these are set the same
-->
                                  20971520
                                </interceptor-ref>                              
                        
                <interceptor-ref name="checkbox"/>
                <interceptor-ref name="staticParams"/>
                <interceptor-ref name="params">
                  dojo\..*
                </interceptor-ref>
                <interceptor-ref name="conversionError"/>
                <interceptor-ref name="validation">
                    input,back,cancel,browse
                </interceptor-ref>
                <interceptor-ref name="workflow">
                    input,back,cancel,browse
                </interceptor-ref>
                                        
            </interceptor-stack>            
        </interceptors>
        
            <default-interceptor-ref name="defaultLocaleStack"/>


Also, here is a debug stack trace when there is a problem:

10:24:46,453 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.
10:24:46,453 DEBUG InstantiatingNullHandler:72 - Entering nullPropertyValue
[EMAIL PROTECTED],
property=struts]
10:24:46,453 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.
10:24:46,453 DEBUG DefaultActionProxy:65 - Creating an DefaultActionProxy
for namespace / and action name home
10:24:46,468 DEBUG I18nInterceptor:97 - intercept '//home' { 
10:24:46,468 DEBUG I18nInterceptor:110 - requested_locale=null
10:24:46,468 DEBUG I18nInterceptor:140 - before Locale=en_US
10:24:46,468  INFO LocaleInterceptor:38 - url:
http://localhost:8080/TechNotes
10:24:46,468 DEBUG LocaleInterceptor:57 - locale language (based on url) =
technotes
10:24:46,468 DEBUG LocaleInterceptor:59 - application name (based on
corresponding properties file): TechNotes
10:24:46,468 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[prepareHome] in action [EMAIL PROTECTED]
10:24:46,468 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[prepareDoHome] in action [EMAIL PROTECTED]
10:24:46,468 ERROR [default]:253 - Servlet.service() for servlet default
threw exception
java.lang.NullPointerException
        at com.wamnet.notes.webactions.NoteAction.prepare(NoteAction.java:163)
        at
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:118)
        at
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:170)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
com.mndigi.notes.util.LocaleInterceptor.intercept(LocaleInterceptor.java:65)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
        at
com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
        at
com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
        at
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
        at
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
        at
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
        at
org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:419)
        at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
        at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
        at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
        at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
        at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
        at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
        at
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
        at
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
        at
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
        at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
        at java.lang.Thread.run(Thread.java:619)
10:24:46,484 DEBUG [/TechNotes]:185 - servletPath=/error.jsp, pathInfo=null,
queryString=null, name=null
10:24:46,484 DEBUG [/TechNotes]:375 -  Path Based Forward
10:24:46,484 DEBUG JspServlet:248 - JspEngine --> /error.jsp
10:24:46,484 DEBUG JspServlet:249 -          ServletPath: /error.jsp
10:24:46,484 DEBUG JspServlet:250 -             PathInfo: null
10:24:46,484 DEBUG JspServlet:251 -             RealPath: C:\Documents and
Settings\jeremy\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\notesproject\error.jsp
10:24:46,484 DEBUG JspServlet:252 -           RequestURI: /TechNotes/error.jsp
10:24:46,484 DEBUG JspServlet:253 -          QueryString: null
10:24:46,484 DEBUG JspServlet:254 -       Request Params: 
10:24:46,484 DEBUG [/TechNotes]:412 -  Disabling the response for futher
output
10:24:46,859 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.



And here is the log when there is no problem:
10:24:01,484 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.
10:24:01,484 DEBUG InstantiatingNullHandler:72 - Entering nullPropertyValue
[EMAIL PROTECTED], property=org]
10:24:01,484 DEBUG JspServlet:248 - JspEngine --> /index.jsp
10:24:01,500 DEBUG JspServlet:249 -          ServletPath: /index.jsp
10:24:01,500 DEBUG JspServlet:250 -             PathInfo: null
10:24:01,500 DEBUG JspServlet:251 -             RealPath: C:\Documents and
Settings\jeremy\workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\notesproject\index.jsp
10:24:01,500 DEBUG JspServlet:252 -           RequestURI: /TechNotes/
10:24:01,500 DEBUG JspServlet:253 -          QueryString: null
10:24:01,500 DEBUG JspServlet:254 -       Request Params: 
10:24:01,515 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.
10:24:01,515 DEBUG InstantiatingNullHandler:72 - Entering nullPropertyValue
[EMAIL PROTECTED],
property=struts]
10:24:01,515 DEBUG ConfigurationManager:156 - Checking
ConfigurationProviders for reload.
10:24:01,515 DEBUG DefaultActionProxy:65 - Creating an DefaultActionProxy
for namespace / and action name home
10:24:01,515 DEBUG I18nInterceptor:97 - intercept '//home' { 
10:24:01,515 DEBUG I18nInterceptor:110 - requested_locale=null
10:24:01,515 DEBUG I18nInterceptor:140 - before Locale=en_US
10:24:01,515  INFO LocaleInterceptor:38 - url:
http://localhost:8080/TechNotes
10:24:01,515 DEBUG LocaleInterceptor:57 - locale language (based on url) =
technotes
10:24:01,531 DEBUG LocaleInterceptor:59 - application name (based on
corresponding properties file): TechNotes
10:24:01,531 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[prepareHome] in action [EMAIL PROTECTED]
10:24:01,531 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[prepareDoHome] in action [EMAIL PROTECTED]
Hibernate: 
    /* criteria query */ select
        this_.category_id as category1_0_0_,
        this_.name as name0_0_,
        this_.serial_version_u_i_d as serial3_0_0_,
        this_.application_name as applicat4_0_0_ 
    from
        tb_category this_ 
    where
        this_.application_name=? 
    order by
        this_.name asc
10:24:02,015 DEBUG InstantiatingNullHandler:72 - Entering nullPropertyValue
[EMAIL PROTECTED],
[EMAIL PROTECTED], property=struts]
10:24:02,015 DEBUG FileUploadInterceptor:204 - Bypassing // home
10:24:02,015 DEBUG StaticParametersInterceptor:83 - Setting static
parameters {}
10:24:02,015 DEBUG ParametersInterceptor:148 - Setting params 
10:24:02,031 DEBUG AnnotationValidationInterceptor:134 - Validating //home
with method home.
10:24:02,031  INFO ActionValidatorManagerFactory:29 - Detected
AnnotationActionValidatorManager, initializing it...
10:24:02,078 DEBUG DefaultWorkflowInterceptor:183 - Invoking validate() on
action [EMAIL PROTECTED]
10:24:02,078 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[validateHome] in action [EMAIL PROTECTED]
10:24:02,078 DEBUG PrefixMethodInvocationUtil:141 - cannot find method
[validateDoHome] in action [EMAIL PROTECTED]
10:24:02,078 DEBUG DefaultActionInvocation:383 - Executing action method =
home
10:24:02,578  WARN QueryTranslatorImpl:328 - firstResult/maxResults
specified with collection fetch; applying in memory!
Hibernate: 
...

Thanks,
Jeremy
-- 
View this message in context: 
http://www.nabble.com/session-or-interceptor-initialization---configuration-problem-tp15188815p15188815.html
Sent from the Struts - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to