trustmiracle
شنبه 29 تیر 1392, 15:47 عصر
من دارم struts2 را یاد میگیرم. فایل struts.xml ام بصورت زیر هستش:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="languages" />
<package name="default" namespace="/" extends="struts-default">
<!--
<default-action-ref name="index" />
-->
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"/>
<exception-mapping result="error" exception="ir.imrasta.esa.bll.exceptions.DataSourceException"/>
<exception-mapping result="error" exception="ir.imrasta.esa.bll.exceptions.DecryptionException"/>
</global-exception-mappings>
<action name="index">
<result>/index.jsp</result>
</action>
<action name="login" class="ir.imrasta.esa.ui.action.UserAction" method="login">
<result name="success">/protected/admin/list</result>
<result name="failed">/login.jsp?login=failed</result>
</action>
</package>
<package name="admin" namespace="protected/admin/" extends="default">
<action name="list" class="ir.imrasta.esa.ui.action.ManagerAction" method="list">
<result name="success">/protected/admin/list.jsp</result>
</action>
</package>
</struts>
من در فراخوانی اکشن login که در پکیج default هست مشکلی ندارم. ولی وقتی اکشن list را که در پکیج دوم هست فراخوانی می کنم خطای زیر را میده:
Struts Problem Report
Struts has detected an unhandled exception:
Messages: There is no Action mapped for namespace [/] and action name
[list] associated with context path [/ESA].
Stacktraces
There is no Action mapped for namespace [/] and action name
[list] associated with context path [/ESA]. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare (DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare( StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.c reateActionProxy(StrutsActionProxyFactory.java:39) com.opensymphony.xwork2.DefaultActionProxyFactory. createActionProxy(DefaultActionProxyFactory.java:5 8) org.apache.struts2.dispatcher.Dispatcher.serviceAc tion(Dispatcher.java:553) org.apache.struts2.dispatcher.ng.ExecuteOperations .executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrep areAndExecuteFilter.doFilter(StrutsPrepareAndExecu teFilter.java:99) org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103) org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:861) org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:606) org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489) java.lang.Thread.run(Unknown Source)
You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set:
struts.devMode=false in your WEB-INF/classes/struts.properties file.
من بصورت زیر این اکشن را فراخوانی می کنم:
lhttp://localhost:8080/ESA/protected/admin/list?
آیا در نوشتن url اشتباه کردم؟
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<constant name="struts.devMode" value="true" />
<constant name="struts.custom.i18n.resources" value="languages" />
<package name="default" namespace="/" extends="struts-default">
<!--
<default-action-ref name="index" />
-->
<global-results>
<result name="error">/error.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping result="error" exception="java.lang.Exception"/>
<exception-mapping result="error" exception="ir.imrasta.esa.bll.exceptions.DataSourceException"/>
<exception-mapping result="error" exception="ir.imrasta.esa.bll.exceptions.DecryptionException"/>
</global-exception-mappings>
<action name="index">
<result>/index.jsp</result>
</action>
<action name="login" class="ir.imrasta.esa.ui.action.UserAction" method="login">
<result name="success">/protected/admin/list</result>
<result name="failed">/login.jsp?login=failed</result>
</action>
</package>
<package name="admin" namespace="protected/admin/" extends="default">
<action name="list" class="ir.imrasta.esa.ui.action.ManagerAction" method="list">
<result name="success">/protected/admin/list.jsp</result>
</action>
</package>
</struts>
من در فراخوانی اکشن login که در پکیج default هست مشکلی ندارم. ولی وقتی اکشن list را که در پکیج دوم هست فراخوانی می کنم خطای زیر را میده:
Struts Problem Report
Struts has detected an unhandled exception:
Messages: There is no Action mapped for namespace [/] and action name
[list] associated with context path [/ESA].
Stacktraces
There is no Action mapped for namespace [/] and action name
[list] associated with context path [/ESA]. - [unknown location] com.opensymphony.xwork2.DefaultActionProxy.prepare (DefaultActionProxy.java:185) org.apache.struts2.impl.StrutsActionProxy.prepare( StrutsActionProxy.java:63) org.apache.struts2.impl.StrutsActionProxyFactory.c reateActionProxy(StrutsActionProxyFactory.java:39) com.opensymphony.xwork2.DefaultActionProxyFactory. createActionProxy(DefaultActionProxyFactory.java:5 8) org.apache.struts2.dispatcher.Dispatcher.serviceAc tion(Dispatcher.java:553) org.apache.struts2.dispatcher.ng.ExecuteOperations .executeAction(ExecuteOperations.java:77) org.apache.struts2.dispatcher.ng.filter.StrutsPrep areAndExecuteFilter.doFilter(StrutsPrepareAndExecu teFilter.java:99) org.apache.catalina.core.ApplicationFilterChain.in ternalDoFilter(ApplicationFilterChain.java:235) org.apache.catalina.core.ApplicationFilterChain.do Filter(ApplicationFilterChain.java:206) org.apache.catalina.core.StandardWrapperValve.invo ke(StandardWrapperValve.java:233) org.apache.catalina.core.StandardContextValve.invo ke(StandardContextValve.java:191) org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:127) org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:103) org.apache.catalina.core.StandardEngineValve.invok e(StandardEngineValve.java:109) org.apache.catalina.connector.CoyoteAdapter.servic e(CoyoteAdapter.java:293) org.apache.coyote.http11.Http11Processor.process(H ttp11Processor.java:861) org.apache.coyote.http11.Http11Protocol$Http11Conn ectionHandler.process(Http11Protocol.java:606) org.apache.tomcat.util.net.JIoEndpoint$Worker.run( JIoEndpoint.java:489) java.lang.Thread.run(Unknown Source)
You are seeing this page because development mode is enabled. Development mode, or devMode, enables extra debugging behaviors and reports to assist developers. To disable this mode, set:
struts.devMode=false in your WEB-INF/classes/struts.properties file.
من بصورت زیر این اکشن را فراخوانی می کنم:
lhttp://localhost:8080/ESA/protected/admin/list?
آیا در نوشتن url اشتباه کردم؟