IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Struts 2 Java Discussion :

Erreur "There is no Action mapped "


Sujet :

Struts 2 Java

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Erreur "There is no Action mapped "
    Bonjour, Je suis débutant sur le Struts, j'ai trouver un tutoriel sympa, http://www.roseindia.net/struts/struts2/index.shtml

    Il me permet de créer des projets struts en me guidant pas à pas, sauf que je bloc sur mon premier exemple (Hello World) et même en le comparant à la solution je n'arrive pas à régler le problème, le message d'erreur est le suivant :

    Struts Problem Report
    Struts has detected an unhandled exception:
    # Messages: There is no Action mapped for action name HelloWorld.
    Stacktraces
    There is no Action mapped for action name HelloWorld. - [unknown location]

    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:186)
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:41)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:497)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:421)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    java.lang.Thread.run(Unknown Source)
    En suivant le tutorial j'ai configurer mes fichier xml comme suit

    1 - struts. xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     <?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="true" />
     
    <package name="roseindia" namespace="/roseindia" extends="struts-default">
     
    <action name="HelloWorld" class="net.roseindia.Struts2HelloWorld">
    <result>/pages/HelloWorld.jsp</result>
    </action>
     
    <!-- Add actions here -->
    </package>
     
     
    <!-- Add packages here -->
     
    </struts>
    2- Web.xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app id="WebApp_9" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
     
        <display-name>Struts Blank</display-name>
     
        <filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
        </filter>
     
        <filter-mapping>
            <filter-name>struts2</filter-name>
            <url-pattern>/*</url-pattern>
        </filter-mapping>
     
        <welcome-file-list>
            <welcome-file>index.html</welcome-file>
        </welcome-file-list>
     
    </web-app>
    et aussi build.xml :
    Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    <project name="Struts 2 Tutorial" basedir="../" default="all">
        <!-- Project settings -->
        <property name="project.title" value="RoseIndia Struts 2 Tutorials"/>
    	<property name="project.jar.file" value="struts2tutorial.jar"/>
     
    	  <path id="class.path">
     
    		<fileset dir="lib">
     
    		  <include name="**/*.jar"/>
     
    		</fileset>
     
    		<fileset dir="libext">
     
    		  <include name="**/*.jar"/>
     
    		</fileset>
     
    	  </path>
     
    		<!-- Classpath for Project -->
     
    		<path id="compile.classpath">
     
    			<pathelement path ="lib/commons-beanutils.jar"/>
     
    			<pathelement path ="lib/commons-digester.jar"/>
     
    			<pathelement path ="lib/struts.jar"/>
     
    			<pathelement path ="libext/servlet-api.jar"/>
     
    			<pathelement path ="libext/catalina-ant.jar"/>
     
    			<pathelement path ="classes"/>
     
    			<pathelement path ="${classpath}"/>
     
    		</path>
     
    		<!-- Check timestamp on files -->
     
    		<target name="prepare">
     
    			<tstamp/>
    			<copy
    				file="src/struts.xml"
    				todir="src/classes"/>
     
     
    		</target>
    		<!-- Copy any resource or configuration files -->
     
    		<target name="resources">
     
    			<copy todir="src/classes" includeEmptyDirs="no">
     
    				<fileset dir="src/java">
     
    				<patternset>
     
    					<include name="**/*.conf"/>
     
    					<include name="**/*.properties"/>
     
    					<include name="**/*.xml"/>
     
    				</patternset>
     
    				</fileset>
     
    			</copy>
     
    		</target>
     
    		<!-- Normal build of application -->
     
    		<target name="compile" depends="prepare,resources">
     
    			<javac srcdir="src" destdir="src/classes" 
                             debug="true" debuglevel="lines,vars,source">
     
    				<classpath refid="class.path"/>
     
    			</javac>
     
    			<jar
     
    			jarfile="lib/${project.jar.file}"
     
    			basedir="src/classes"/>
     
    		</target>
    		<!-- Remove classes directory for clean build -->
     
    		<target name="clean"
     
    		  description="Prepare for clean build">
     
    		  <delete dir="classes"/>
     
    		  <mkdir  dir="classes"/>
     
    		</target>
     
    		<!-- Build Javadoc documentation -->
     
    		<target name="javadoc"
     
    		 description="Generate JavaDoc API docs">
     
    			<delete dir="./doc/api"/>
     
    			<mkdir dir="./doc/api"/>
     
    			<javadoc sourcepath="./src/java"
     
    				destdir="./doc/api"
     
    				classpath="${servlet.jar}:${jdbc20ext.jar}"
     
    				packagenames="*"
     
    				author="true"
     
    				private="true"
     
    				version="true"
     
    				windowtitle="${project.title} API Documentation"
     
    				doctitle="&lt;h1&gt;${project.title}
                              Documentation (Version ${project.version})&lt;/h1&gt;"
     
    				bottom="Copyright © 2002">
     
    				<classpath refid="compile.classpath"/>
     
    			</javadoc>
     
    		</target>
     
    		<!-- Build entire project -->
     
    		<target name="project" depends="clean,prepare,compile"/>
     
    		<!-- Create binary distribution -->
     
    		<target name="dist"
     
    			description="Create binary distribution">
     
    		  <mkdir
     
    			dir="${distpath.project}"/>
     
    		  <jar
     
    			jarfile="${distpath.project}/${project.distname}.jar"
     
    			basedir="./classes"/>
     
    		  <copy
     
    			file="${distpath.project}/${project.distname}.jar"
     
    			todir="${distpath.project}"/>
     
     
     
    		  <war
     
    			basedir="../"
     
    			warfile="${distpath.project}/${project.distname}.war"
     
    			webxml="web.xml">
     
    			<exclude name="${distpath.project}/${project.distname}.war"/>
     
    		   </war>
     
        </target>
     
     
        <!-- Build project and create distribution-->
     
    	<target name="all" depends="project"/>
     
            </project>
    Aussi pour :
    Struts2HelloWorld.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    package net.roseindia;
    import com.opensymphony.xwork2.ActionSupport;
    import java.util.Date;
     
    public class Struts2HelloWorld extends ActionSupport {
     
        public static final String MESSAGE = "Struts 2 Hello World Tutorial!";
     
        public String execute() throws Exception {
            setMessage(MESSAGE);
            return SUCCESS;
        }
     
        private String message;
     
        public void setMessage(String message){
            this.message = message;
        }
     
        public String getMessage() {
            return message;
        }
     
      public String getCurrentTime(){
          return new Date().toString();
      }
    }
    et HelloWorld.jsp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <%@ taglib prefix="s" uri="/struts-tags" %>
    <html>
    <head>
    <title>Struts 2 Hello World Application!</title>
    </head>
    <body>
    <h2><s:property value="message" /></h2>
    <p>Current date and time is: <b><s:property value="currentTime" /></b>
    </body>
    </html>
    Je tiens à préciser que la compilation s'est faite correctement avec l'outils "ant"

    merci d'avance

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    12
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Bonjour,

    J'ai exactement le même soucis avec la même config.
    Si qqun pouvait m'aider :-)

    Merci d'avance,

    Thomas
    FC B you'll never walk alone
    There are only 10 types of people in the world: Those who understand binary, and those who don't

  3. #3
    Membre expérimenté Avatar de maxf1
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Moselle (Lorraine)

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 229
    Points : 1 371
    Points
    1 371
    Par défaut
    Salut,

    Est-ce que ta class : net.roseindia.Struts2HelloWorld est bien présente?

    Pour plus de facilité tu devrais faire un jar de toutes tes sources et les inserer sur le forum ainsi je te trouverais le problème plus rapidement.
    Une solution a été apporté pour résoudre votre problème alors vous aussi faites en profitez les autres grâce au tag qui se trouve tout en bas de la page....

    Merci de ne pas utiliser les messages privés pour un problème sauf si je vous l'ai explicitement demandé.

    -- Maxf1 --

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 151
    Points : 151
    Points
    151
    Par défaut
    Petite idée.
    There is no Action mapped for action name HelloWorld. - [unknown location]
    Il y a peut être un problème à cause de la définition du
    namespace="/roseindia"
    de ton package . Il faut donc t'assurer que l'url que tu appelles contienne bien ce namespace sinon struts2 ne saura le trouver.

    Une autre possiblilité est de mettre dans ton action le nom du de la page à afficher
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <result name ="success">/pages/HelloWorld.jsp</result>
    (Normalement c'est celui la par défaut avec la methode execute).

  5. #5
    Nouveau membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 24
    Points : 25
    Points
    25
    Par défaut
    bonjour à vous,

    J'ai le même probleme à la différence que j'essaye d'appeler une fonction différente de mon action. Quelqu'un pour m'aider, j'ai vu un exemple permettant faire un espèce d'action de CRUD, mais ça n'a pas l'air a fonctionner. J'ai un module DAO utilisant spring fonctionnant très bien séparément, ces la partie strut qui ne fonctionne pas.

    Mon Struts.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    <?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" />
     
        <package name="strut2JDBC" extends="struts-default">    	
    		<action name="welcome" class="com.monNom.strut2jdbc.struts.actions.Strut2JDBCAction" method="welcome">
    			<result name="success">/jsp/welcome.jsp</result>
    		</action>
        </package>
     
    </struts>
    Mon Web.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    <?xml version="1.0" encoding="UTF-8"?>
    <web-app version="2.5" 
    	xmlns="http://java.sun.com/xml/ns/javaee" 
    	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
    	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
     
    	<context-param>
    		<param-name>contextConfigLocation</param-name> 
    		<param-value>/WEB-INF/spring.xml</param-value> 
    	</context-param>
     
    	<filter>
            <filter-name>struts2</filter-name>
            <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</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>
     
     
    	<welcome-file-list>
    		<welcome-file>index.jsp</welcome-file>
    	</welcome-file-list>
    </web-app>
    Mon ActionSupport:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    package com.monNom.strut2jdbc.struts.actions;
     
    import com.opensymphony.xwork2.ActionSupport;
    import com.monNom.strut2jdbc.services.Service;
    import com.monNom.strut2jdbc.utils.SpringUtil;
     
    /**
     * @author monNom
     *
     */
    public class Strut2JDBCAction extends ActionSupport {
    	public static final long serialVersionUID = 0L;
     
    	private Service service = (Service)SpringUtil.getBean("service");
    	private String personName;
     
    	public Strut2JDBCAction() {
    		System.out.println("Action created: " + SUCCESS);
    	}
     
    	public String welcome() {
    		System.out.println("call welcome() : " + personName);
     
    		System.out.println("Result: "+SUCCESS);
     
    		return SUCCESS;
    	}
     
    	/**
             * @return the service
             */
    	public Service getService() {
    		return service;
    	}
     
    	/**
             * @param service the service to set
             */
    	public void setService(Service service) {
    		this.service = service;
    	}
     
    	/**
             * @return the personName
             */
    	public String getPersonName() {
    		return personName;
    	}
     
    	/**
             * @param personName the personName to set
             */
    	public void setPersonName(String personName) {
    		this.personName = personName;
    	}
    }
    Mon JSP:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    <%@ taglib prefix="s" uri="/struts-tags" %>
     
    <html>
      <head>
        <title>Welcome</title>
    	<meta http-equiv="pragma" content="no-cache">
    	<meta http-equiv="cache-control" content="no-cache">
    	<meta http-equiv="expires" content="0">    
    	<meta http-equiv="keywords" content="welcome">
      </head>
     
      <body>
        	Welcome <s:property value="personName" /><br />
        	<ul>
    		    <li>
    		        Liste TypeProjet
    		    </li>
    		    <li>
    		        Liste Client
    		    </li>
    		    <li>
    		        Liste Conseiller
    		    </li>
    		    <li>
    		        Liste ContactClient
    		    </li>
    		    <li>
    		        Liste DSE
    		    </li>
    		    <li>
    		        Liste Industrie
    		    </li>
    		</ul>
      </body>
    </html>
    Merci d'avance serais très apprécier.

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    7
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : Tunisie

    Informations forums :
    Inscription : Juillet 2007
    Messages : 7
    Points : 13
    Points
    13
    Par défaut probleme résolu
    Bonjour,
    j'ai eu le même problème et je l'ai résolu en vidant le cache de TOMCAT (supprime le contenu de struts2tutorial dans le dossier et webapp et work et redemare TOMCAT)
    bonne chance

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par mansourahma Voir le message
    Bonjour,
    j'ai eu le même problème et je l'ai résolu en vidant le cache de TOMCAT (supprime le contenu de struts2tutorial dans le dossier et webapp et work et redemare TOMCAT)
    bonne chance
    Merci ! J'ai vidé le cache et ça fonctionne, c'était exactement ça !

Discussions similaires

  1. Message There is no Action mapped for action name
    Par tyzef dans le forum Struts 2
    Réponses: 17
    Dernier message: 15/09/2014, 13h59
  2. Erreur Struts 2 : There is no Action.
    Par sal.gass dans le forum Struts 2
    Réponses: 5
    Dernier message: 13/01/2011, 18h17
  3. [débutant] erreur "indice de liste hors limites(1)"
    Par lidouka dans le forum Langage
    Réponses: 2
    Dernier message: 13/12/2005, 14h31
  4. [Eclipse][Struts][Tomcat] Erreur Http 503 La servlet action.
    Par minique dans le forum Servlets/JSP
    Réponses: 8
    Dernier message: 20/09/2004, 17h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo