On 10/18/2013 12:28 PM, Lukasz Lenart wrote:
2013/10/18 Emi Lu <[email protected]>:
Good morning,
Tried the new version15.3, but failed:
login() method is not called at all.
(1) login.jsp
================
<s:submit value="Login"
theme="simple"
action="loginProcessLoginAction" />
Struts 2.3.15.3 disables support for action: prefix by default [1], to
enable it you must set struts.mapper.action.prefix.enabled to true.
Instead action: you can use method: prefix (but you must enable
struts.enable.DynamicMethodInvocation to true [2])
[1] http://struts.apache.org/release/2.3.x/docs/s2-018.html
[2] http://struts.apache.org/release/2.3.x/docs/s2-019.html
Thank you very much for your help! Here are what I tried:
(1) Success version (struts2.3.15.3 + tiles2.2.2 )
struts.xml
============
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.mapper.action.prefix.enabled" value="true"/>
web.xml
=======
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
(2) Failed version(struts2.3.15.3 + tiles3.0.1)
struts.xml
============
<constant name="struts.enable.DynamicMethodInvocation" value="true"/>
<constant name="struts.mapper.action.prefix.enabled" value="true"/>
web.xml
=======
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
struts-login.xml
==================
<package name="Login" namespace="/Login" extends="tiles-default">
<result-types>
<result-type name="tiles"
class="org.apache.struts2.views.tiles.TilesResult" />
</result-types>
<action name="*ProcessLoginAction" method="{1}"
class="ProcessLoginAction">
<result name="success" type="tiles">login_main_page</result>
<result name="error" type="tiles">login_main_page</result>
<result name="main_menu" type="redirectAction">
<param name="actionName">ProcessMenuAction</param>
<param name="namespace">/Menu</param>
</result>
<result name="ajax_check">
/WEB-INF/pages/errorinfo/ajax_error_check.jsp
</result>
</action>
......
>> Got the following exception:
>> ====================================
>> java.lang.NoSuchMethodError: org.apache.tiles.access.**
>> TilesAccess.getContainer(**Ljava/lang/Object;)Lorg/**
>> apache/tiles/TilesContainer;
>> at org.apache.struts2.views.**tiles.TilesResult.doExecute(**
>> TilesResult.java:100)
>> at
org.apache.struts2.dispatcher.**StrutsResultSupport.execute(**
>> StrutsResultSupport.java:186)
>> at com.opensymphony.xwork2.**DefaultActionInvocation.**
>> executeResult(**DefaultActionInvocation.java:**371)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**275)
>> at org.apache.struts2.**interceptor.debugging.**
>> DebuggingInterceptor.**intercept(**DebuggingInterceptor.java:256)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>> DefaultWorkflowInterceptor.**doIntercept(**DefaultWorkflowInterceptor.**
>> java:167)
>> at com.opensymphony.xwork2.**interceptor.**
>> MethodFilterInterceptor.**intercept(**MethodFilterInterceptor.java:**98)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
com.opensymphony.xwork2.**validator.**ValidationInterceptor.**
>> doIntercept(**ValidationInterceptor.java:**265)
>> at org.apache.struts2.**interceptor.validation.**
>> AnnotationValidationIntercepto**r.doIntercept(**
>> AnnotationValidationIntercepto**r.java:68)
>> at com.opensymphony.xwork2.**interceptor.**
>> MethodFilterInterceptor.**intercept(**MethodFilterInterceptor.java:**98)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>> ConversionErrorInterceptor.**intercept(**ConversionErrorInterceptor.**
>> java:138)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
com.opensymphony.xwork2.**interceptor.**ParametersInterceptor.*
>> *doIntercept(**ParametersInterceptor.java:**239)
>> at com.opensymphony.xwork2.**interceptor.**
>> MethodFilterInterceptor.**intercept(**MethodFilterInterceptor.java:**98)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
com.opensymphony.xwork2.**interceptor.**ParametersInterceptor.*
>> *doIntercept(**ParametersInterceptor.java:**239)
>> at com.opensymphony.xwork2.**interceptor.**
>> MethodFilterInterceptor.**intercept(**MethodFilterInterceptor.java:**98)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>> StaticParametersInterceptor.**intercept(**StaticParametersInterceptor.**
>> java:191)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at org.apache.struts2.**interceptor.**MultiselectInterceptor.**
>> intercept(**MultiselectInterceptor.java:**73)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at org.apache.struts2.**interceptor.**
>> CheckboxInterceptor.intercept(**CheckboxInterceptor.java:91)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at org.apache.struts2.**interceptor.**FileUploadInterceptor.**
>> intercept(**FileUploadInterceptor.java:**252)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
com.opensymphony.xwork2.**interceptor.**ModelDrivenInterceptor.
>> **intercept(**ModelDrivenInterceptor.java:**100)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>>
ScopedModelDrivenInterceptor.**intercept(**ScopedModelDrivenInterceptor.**
>> java:141)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>> ChainingInterceptor.intercept(**ChainingInterceptor.java:145)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
com.opensymphony.xwork2.**interceptor.**PrepareInterceptor.**
>> doIntercept(**PrepareInterceptor.java:171)
>> at com.opensymphony.xwork2.**interceptor.**
>> MethodFilterInterceptor.**intercept(**MethodFilterInterceptor.java:**98)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.I18nInterceptor.**
>> intercept(I18nInterceptor.**java:161)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at
org.apache.struts2.**interceptor.**ServletConfigInterceptor.**
>> intercept(**ServletConfigInterceptor.java:**164)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.AliasInterceptor.**
>> intercept(AliasInterceptor.**java:193)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at com.opensymphony.xwork2.**interceptor.**
>> ExceptionMappingInterceptor.**intercept(**ExceptionMappingInterceptor.**
>> java:189)
>> at
com.opensymphony.xwork2.**DefaultActionInvocation.**invoke(**
>> DefaultActionInvocation.java:**246)
>> at org.apache.struts2.impl.**StrutsActionProxy.execute(**
>> StrutsActionProxy.java:54)
>> at org.apache.struts2.dispatcher.**Dispatcher.serviceAction(**
>> Dispatcher.java:563)
>> at org.apache.struts2.dispatcher.**ng.ExecuteOperations.**
>> executeAction(**ExecuteOperations.java:77)
>> at org.apache.struts2.dispatcher.**ng.filter.**
>>
StrutsPrepareAndExecuteFilter.**doFilter(**StrutsPrepareAndExecuteFilter.*
>> *java:99)
>> at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**235)
>> at
org.apache.catalina.core.**ApplicationFilterChain.**doFilter(**
>> ApplicationFilterChain.java:**206)
>> at org.displaytag.filter.**ResponseOverrideFilter.**doFilter(**
>> ResponseOverrideFilter.java:**125)
>> at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**235)
>> at
org.apache.catalina.core.**ApplicationFilterChain.**doFilter(**
>> ApplicationFilterChain.java:**206)
>> at org.displaytag.filter.**ResponseOverrideFilter.**doFilter(**
>> ResponseOverrideFilter.java:**125)
>> at org.apache.catalina.core.**ApplicationFilterChain.**
>> internalDoFilter(**ApplicationFilterChain.java:**235)
>> at
org.apache.catalina.core.**ApplicationFilterChain.**doFilter(**
>> ApplicationFilterChain.java:**206)
>> at org.apache.catalina.core.**StandardWrapperValve.invoke(**
>> StandardWrapperValve.java:233)
>> at org.apache.catalina.core.**StandardContextValve.invoke(**
>> StandardContextValve.java:191)
>> at org.apache.catalina.core.**StandardHostValve.invoke(**
>> StandardHostValve.java:127)
>> at org.apache.catalina.valves.**ErrorReportValve.invoke(**
>> ErrorReportValve.java:103)
>> at org.apache.catalina.core.**StandardEngineValve.invoke(**
>> StandardEngineValve.java:109)
>> at org.apache.catalina.connector.**CoyoteAdapter.service(**
>> CoyoteAdapter.java:293)
>> at org.apache.coyote.http11.**Http11Processor.process(**
>> Http11Processor.java:861)
>> at org.apache.coyote.http11.**Http11Protocol$**
>> Http11ConnectionHandler.**process(Http11Protocol.java:**606)
>> at org.apache.tomcat.util.net.**JIoEndpoint$Worker.run(**
>> JIoEndpoint.java:489)
>> at java.lang.Thread.run(Thread.**java:662)
>>
>> Could someone tell which jar missing please?
>>
>> Struts2.3.15.3 + tiles3.01.
Posted to tiles list as well.
The above exception shows when I did not load tiles*2.0.6.jars. If I
load them, another exception will be shown.
Any help about how to fix the exception?
Thanks a lot!
Emi
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]