Hi All,

   I am new to struts2+spring and i am just trying to learn. I have added 
following in web.xml.

<filter>

        <filter-name>struts2</filter-name>

        
<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

    </filter>


    <filter-mapping>

        <filter-name>struts2</filter-name>

        <url-pattern>/*</url-pattern>

    </filter-mapping>

    

    <listener>

      
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

    </listener>

    

    <listener>

      
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>

    </listener>

    

    <context-param>

      <param-name> org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG 
</param-name>

      <param-value>/WEB-INF/tiles.xml</param-value>

        </context-param>

        


In struts.xml,


<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

    "http://struts.apache.org/dtds/struts-2.0.dtd";>


<struts>


    <!-- <constant name="struts.enable.DynamicMethodInvocation" value="false" 
/> -->

    <constant name="struts.devMode" value="false" />


    <include file="request.xml"/>

    

   <package name="default" namespace="/" extends="struts-default">

        

        <action name="" class="checkLoginSession">

             <result name="loginPage">/jsp/Login.jsp</result>

             <result name="homePage">/jsp/Home.jsp</result>

        </action>

        

        <action name="authenticateUser" class="loginAction">

            <result name="true">/jsp/Home.jsp</result>

        

            <result name="false">/jsp/Login.jsp</result>

        </action>


        <action name="checkSession" class="checkLoginSession">            

            <result name="loginPage">/jsp/Login.jsp</result>

             <result name="homePage">/jsp/Home.jsp</result>

        </action>

    </package>

    

        

    <!-- Add packages here -->


</struts>


In Login.jsp,

  

 </head>

    <body>

    <s:form action="authenticateUser" name="loginForm" method="POST">

      <s:actionerror />

      <s:textfield name="userName" label="User Name"/><br>

      <s:password name="password" label="Password" onkeypress="return 
entsub(this.form)"/><br>

         <s:submit onclick="" value="Login" align="center"/>

    </s:form>

  </body>

</html>



After deplying this application,

   if i access localhost:8080/appname/


It goes to login page and after entering the credential, if i
click Login button, the corresponding action class gets called after
looking into spring's applicationCotext.xml.


But if i access the loging page agin and hits the Login button, i am getting 
the following error.


HTTP Status 500 -


type Exception report


message


description The server encountered an internal error () that prevented it from 
fulfilling this request.


exception


java.lang.RuntimeException: Invalid action class configuration that references 
an unknown class named [loginAction]

        
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:100)

        
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)

        
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)

        
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:76)

        
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)

        
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:356)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)

        
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)

       
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

        
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

        
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

        
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

        
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


root cause


java.lang.ClassNotFoundException: loginAction

        
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1358)

        
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1204)

        
org.apache.struts2.util.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:111)

        
org.apache.struts2.convention.ConventionsServiceImpl.determineResultPath(ConventionsServiceImpl.java:98)

        
org.apache.struts2.convention.ConventionUnknownHandler.determinePath(ConventionUnknownHandler.java:385)

        
org.apache.struts2.convention.ConventionUnknownHandler.handleUnknownResult(ConventionUnknownHandler.java:274)

        
com.opensymphony.xwork2.DefaultUnknownHandlerManager.handleUnknownResult(DefaultUnknownHandlerManager.java:76)

        
com.opensymphony.xwork2.DefaultActionInvocation.createResult(DefaultActionInvocation.java:215)

        
com.opensymphony.xwork2.DefaultActionInvocation.executeResult(DefaultActionInvocation.java:356)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:266)

        
com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:252)

       
org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:179)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:130)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)

        
com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:165)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:179)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)

        
com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:237)

        
org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

        
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:488)

        
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)

        
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)

        
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)



      The INTERNET now has a personality. YOURS! See your Yahoo! Homepage. 
http://in.yahoo.com/

Reply via email to