Сопоставление действий не работает после перехода со Struts 2.3.12 на 2.3.20JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Сопоставление действий не работает после перехода со Struts 2.3.12 на 2.3.20

Сообщение Anonymous »

В настоящее время я использую Struts 2.3.12 в своем проекте, и все работает нормально.
Теперь мне нужно обновить версию Struts до 2.3.20, чтобы обеспечить некоторую безопасность. проблема.
Я изменил версию Struts и необходимых плагинов Struts на 2.3.20 в pom.xml моего проекта и собрал проект война.
Теперь я пытаюсь получить доступ к домашнему URL-адресу своего приложения, но получаю следующее исключение:

Там нет действия, сопоставленного для пространства имен [/web/public] и имени действия [reset-password!reset], связанного с контекстным путем [/ims]. - [неизвестное местоположение]

com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:185)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:63)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:37)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:58)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:554)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:81)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:99)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrideFilter.java:125)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
org.josso.tc55.agent.SSOAgentValve.invoke(SSOAgentValve.java:472)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
java.lang.Thread.run(Thread.java:662)

Я не смог понять, что происходит.
Я просмотрел примечания к выпуску Struts 2.3.20, но это не так. получаю какие-либо подсказки.
Я использую плагин strust2-convention-plugin.
Я делюсь своим web.xml и файлы struts.xml. Выглядит это следующим образом:
web.xml:


ims



jcaptcha
com.sapienza.jail.controller.jcaptcha.JailImageCaptchaServlet


jcaptcha
/web/public/jcaptcha.jpg




encodingFilter
org.springframework.web.filter.CharacterEncodingFilter

encoding
UTF-8


forceEncoding
true




encodingFilter
/web/*



ResponseOverrideFilter
org.displaytag.filter.ResponseOverrideFilter


ResponseOverrideFilter
/web/*



struts2
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter


struts2
/web/*


struts2
/web/public/*


struts2
*.action


struts2
*.jsp


struts2
/struts/*





*.jsp
false
UTF-8
/jsp/common/taglibs.jspf



/jsp/common/home.jsp




org.springframework.web.context.ContextLoaderListener



contextConfigLocation
classpath:applicationContext.xml




com.sapienza.jail.listener.ResourceListener




com.sapienza.jail.listener.LdapSyncListener




org.apache.struts2.tiles.StrutsTilesListener



org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
/WEB-INF/tiles/skins-definitions.xml,/WEB-INF/tiles/pages-definitions.xml


org.apache.tiles.evaluator.AttributeEvaluator
org.apache.tiles.evaluator.el.ELAttributeEvaluator




struts.xml:

















struts-base.xml:












































true
input,back,cancel,list,view,initCreate,initUpdate,delete



input



input,back,cancel,list,view,initCreate,initUpdate,delete



















true
input,back,cancel,list,view,initCreate,initUpdate,delete



input



input,back,cancel,list,view,initCreate,initUpdate,delete









/jsp/common/error.jsp
/jsp/common/access-denied.jsp
/jsp/common/ldap-connection-error.jsp













Я использую отображение действий на основе аннотаций в своем классе следующим образом:
@Results({
@Result(name="index", type="tiles", location="testPage"),
@Result(name = "redirect", location = "user/search-user!view", type = "redirectAction")
})
@Namespace("/web/public")
@Action
public class HomeAction extends BaseAction {

private static final Logger logger = Logger.getLogger(HomeAction.class);
private static final String SESSIONBASKET = "userSessionBasket";
//-------------------------------------------------------------------------
// Dependencies injected by spring via setters
//-------------------------------------------------------------------------

//-------------------------------------------------------------------------
// Constructor and methods
//-------------------------------------------------------------------------
public HomeAction() {
}

@Override
public String execute() {
if (isInHttpSession(SESSIONBASKET)){
getSession().removeAttribute(SESSIONBASKET);
}
return result(REDIRECT_RESULT);
}

//-------------------------------------------------------------------------
// Getters and Setters
//-------------------------------------------------------------------------

}


Подробнее здесь: https://stackoverflow.com/questions/287 ... -to-2-3-20
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»