You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by baskar <ba...@yahoo.co.in> on 2010/01/25 03:19:23 UTC

Struts2+spring plugin problem

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/