Struts2 Non esiste alcuna azione mappata per lo spazio dei nomi e il nome dell’azione associati al percorso di contesto

Sono un principiante di Struts2, so che questa domanda è stata posta qui molte volte, ma ho provato a risolverlo e leggere molte discussioni qui, passare 6 ore e ancora non riesco a farlo funzionare. Ho davvero bisogno di più suggerimenti …

Ecco il mio pacchetto

Struts2Test +Struts2Test/src +tw.com.rrstudio.java.test -TestAction.java +Struts2Test/build +Struts2Test/WebContent +Struts2Test/WebContent/META-INF +Struts2Test/WebContent/WEB-INF/classs +Struts2Test/WebContent/WEB-INF/lib -Struts2Test/WebContent/WEB-INF/spring-context.xml -Struts2Test/WebContent/WEB-INF/spring-mvc.xml -Struts2Test/WebContent/WEB-INF/struts.xml -Struts2Test/WebContent/WEB-INF/struts2-action.xml -Struts2Test/WebContent/WEB-INF/web.xml -Struts2Test/WebContent/error.jsp -Struts2Test/WebContent/index.jsp -Struts2Test/WebContent/TestAction.jsp 

Il mio web.xml

   Struts2Test  index.jsp   contextConfigLocation  /WEB-INF/spring-context.xml /WEB-INF/spring-mvc.xml    org.springframework.web.context.ContextLoaderListener   struts2 org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter  actionPackages tw.com.rrstudio.java.test     HTTP://java.sun.com/jsp/jstl/core /WEB-INF/lib/tld/c.tld   *.jsp UTF-8    struts2 /*   springmvc org.springframework.web.servlet.DispatcherServlet  contextConfigLocation /WEB-INF/spring-mvc.xml  1   springmvc /*   10   

E anche, struts.xml

             /WebContent/error.jsp   /WebContent/index.jsp /WebContent/TestAction.jsp    

index.jsp

        Index of Struts2Test   

Index of Struts2Test


Il server è Tomcat 8.0.38, inizia senza errori. Ma quando accedo

  • http://127.0.0.1:8080/Struts2Test/
  • http://127.0.0.1:8080/Struts2Test/login

mi dà questo errore (come titolo) e se accedo

  • http://127.0.0.1:8080/Struts2Test/index.jsp

Avrò un risultato regolare di 404.

Ora non ho idea, suggerimenti o suggerimenti sono ben accetti …

Problemi relativi a: Non esiste alcuna azione mappata per lo spazio dei nomi e il nome dell’azione associati al percorso di contesto

Se usi url per chiamare un’azione, assicurati che questo url sia mappato alla configurazione di struts. Per risolvere il problema con la mapping url puoi usare il plugin config-browser. Basta aggiungere questo plug-in alle dipendenze del progetto e quando viene distribuito, è ansible accedere a un sito Web che mostra una configurazione di runtime con gli URL disponibili per chiamare l’azione. Ad esempio se stai eseguendo Tomcat localmente sulla porta 8080 e hai implementato la tua applicazione nel context , puoi accedere all’URL del plugin con

 http://localhost:8080/[context]/config-browser/index.action 

Puoi fare clic su qualsiasi azione disponibile nella pagina delle azioni sotto lo spazio dei nomi nella barra laterale. Si noti inoltre che se l’azione non viene trovata sul pacchetto, potrebbe trovarsi nel pacchetto default . Struts effettua una ricerca aggiuntiva nello spazio dei nomi default per l’azione che non si trova nello spazio dei nomi mappato dall’URL.


Controlla il plugin config-browser per eseguire il debug dei problemi di configurazione.

Per mappare correttamente l’URL all’azione sono necessari due parametri: il nome dell’azione e il namespace.

Struts carica la configurazione xml all’avvio e dovrebbe conoscere la posizione di struts.xml . Di default sta cercando su classpath per trovare un file con nome conosciuto come struts.xml . Quindi analizza il documento e crea una configurazione di runtime. Questa configurazione viene utilizzata per trovare l’elemento di configurazione appropriato per l’URL dell’azione. Se non viene trovato alcun elemento di questo tipo durante la richiesta, il messaggio di errore 404 viene restituito con il messaggio: There is no Action mapped for namespace and action name .

Anche questo messaggio contiene uno spazio dei nomi e nomi di azioni usati per trovare la configurazione dell’azione. Quindi puoi controllare le impostazioni di configurazione in struts.xml . A volte il nome dell’azione e lo spazio dei nomi, memorizzati in ActionMapping puntano all’azione sbagliata. Questi valori sono determinati da ActionMapper che potrebbe avere un’implementazione diversa, utilizzata dai plugin.

C’è anche un’altra impostazione che potrebbe influire su questo mappatore e mapping, ma il punto è lo stesso se si ottiene questo messaggio, allora l’URL è utilizzato non ha mappato alcuna configurazione di azione nella configurazione di runtime. Se non riesci a capire quale URL dovresti usare, puoi provare il plugin config-browser per vedere l’elenco di URL disponibili per l’uso.