Estado HTTP 404 – no Hay ninguna Acción asignada para el espacio de nombres de [/] y el nombre de la acción [inicio de sesión] asociado con context path [/struts2]

He aprendido de la teoría de Struts2 y ahora a practicar. Se enfrenta a problemas durante la ejecución del proyecto.He buscado en Google en muchas maneras, pero no pudo encontrar el resultado.Por favor me ayude. A continuación está el código.Por favor me ayudan amigos…

Estructura del proyecto:

Estado HTTP 404 - no Hay ninguna Acción asignada para el espacio de nombres de [/] y el nombre de la acción [inicio de sesión] asociado con context path [/struts2]

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"              xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>struts2</display-name>
<filter>
    <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter>
<filter-mapping>
    <filter-name>struts2</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<welcome-file-list>
<welcome-file>login.jsp</welcome-file>
</welcome-file-list>

struts.xml

<!DOCTYPE struts PUBLIC
      "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
      "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>

<constant name="resources" value="ApplicationResources" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
    <action name="login" class="com.practice.structs.actions.LoginAction"
        method="validateUser">
        <result name="success">pages/homepage.jsp</result>
        <result name="error">pages/login.jsp</result>
    </action>

</package>

LoginAction.java

package com.practice.structs.actions;

import com.opensymphony.xwork2.ActionSupport;

public class LoginAction extends ActionSupport {
private String userName;
private String password;
public String validateUser(){
    if(this.userName.equalsIgnoreCase("abc") && this.password.equalsIgnoreCase("abc"))
    {
        return "success";
    }else{
        addActionError(getText("error.login"));
        return "error";
    }
}

/**
 * @return the userName
 */
public String getUserName() {
    return userName;
}
/**
 * @param userName the userName to set
 */
public void setUserName(String userName) {
    this.userName = userName;
}
/**
 * @return the password
 */
public String getPassword() {
    return password;
}
/**
 * @param password the password to set
 */
public void setPassword(String password) {
    this.password = password;
}


}

de inicio de sesión.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<html>
<head>

<title>Login page</title>
</head>
<body>
<H1><I>Login Page</I></H1>
<s:actionerror />
<s:form action="login.action" method="post">
    <s:textfield name="uname" key="label.username" size="20"/>
    <s:password name="password" key="label.password" size="20"/>
    <s:submit method="execute" key="label.login" align="center"/>
</s:form>
</body>
</html>

página de inicio.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@taglib prefix="s" uri="/struts-tags" %>
<html>
<head>
<title>Home Page</title>
</head>
<body>
<H2><I>Welcome</I></H2>
</body>
</html>
InformationsquelleAutor user2940073 | 2013-12-17

6 Kommentare

  1. 2

    cambiar su código como este

     <package name="default" namespace="/" extends="struts-default">
            <action name="login" class="com.practice.structs.actions.LoginAction"
                method="validateUser">
                <result name="success">pages/homepage.jsp</result>
                <result name="error">pages/![enter image description here][1]login.jsp</result>
            </action>
    
        </package>
    
    
    <s:form action="login" method="post">
        <s:textfield name="uname" key="label.username" size="20"/>
        <s:password name="password" key="label.password" size="20"/>
        <s:submit method="execute" key="label.login" align="center"/>
    </s:form>

    su nombre de la acción en la forma que sea la acción.inicio de sesión y en struts.xml es el inicio de sesión tanto debe ser el mismo y también agregar el espacio de nombres

    • Gracias por su respuesta.
    • bienvenida espero que ayude
    • Pero obteniendo el mismo error.[XmlConfigurationProvider] Analizar el archivo de configuración [struts-default.xml] [XmlConfigurationProvider] no se puede localizar los archivos de configuración del nombre de struts-plugin.xml, omitiendo [XmlConfigurationProvider] Analizar el archivo de configuración [struts-plugin.xml] [XmlConfigurationProvider] no se puede localizar los archivos de configuración del nombre de struts.xml, omitiendo [XmlConfigurationProvider] Analizar el archivo de configuración [struts.xml]
    • por favor, asegúrese de que usted haya agregado todos los archivos de la biblioteca,y compruebe la ubicación de struts.xml es bajo el paquete de código fuente
    • a continuación están los frascos en mi aplicación struct2 | |src |recursos |-struts.xml |-ApplicationResources.propiedades lib |-commons-fileupload-1.3.jar |-commons-io-2.2.jar |-commons-lang-2.4.jar |-commons-lang3-3.1.jar |-commons-logging-1.1.3.jar |-commons-logging-api-1.1.jar |-freemarker-2.3.19.jar |-javassist-3.11.0.GA.jar |-ognl-3.0.6.jar |-struts2-core-2.3.16.jar |-xwork-core-2.3.16.jar
    • por favor, hágamelo saber si necesito añadir cualquier jar o retirar los frascos.
    • struts.apache.org/release/2.2.x/docs/…
    • He leído que el enlace ya está obsoleta, también podría explicar qué quieren decir con «artefacto»?
    • En el desarrollo de software de ciclo de vida (SDLC), artefacto por lo general se refiere a «cosas» que son producidos por las personas involucradas en el proceso. Ejemplos de ello serían los documentos de diseño, modelos de datos, diagramas de flujo de trabajo, la prueba de matrices y de los planes, instalación de scripts, … como un sitio arqueológico, cualquier cosa que se crea puede ser un artefacto.
    • ¿Se refieren a SDLC o lo que sea que están componer canciones?
    • Según la estructura del Proyecto (imagen de arriba), he añadido todos los frascos correctamente, pero todavía no podía encontrar la causa raíz.Por favor, compruebe código de arriba y proporcionar la solución.
    • por favor, dar el mensaje de error completo de la lista.espero que ya ha cambiado el código de acuerdo con mi sugerencia
    • INFO [TomcatDeployer] undeploy, ctxPath=/struts2, warUrl=…/tmp/deploy/tmp3795815829038544849struts2-exp.guerra/ INFO [TomcatDeployer] implementar, ctxPath=/struts2, warUrl=…/tmp/deploy/tmp8150709624299411222struts2-exp.guerra/ INFO [XmlConfigurationProvider] Analizar el archivo de configuración [struts-default.xml] INFO [XmlConfigurationProvider] no se puede localizar los archivos de configuración del nombre de struts-plugin.xml, omitiendo INFO [XmlConfigurationProvider] Analizar el archivo de configuración [struts-plugin.xml] INFO [XmlConfigurationProvider] no se puede localizar los archivos de configuración del nombre de struts.xml, omitiendo
    • [XmlConfigurationProvider] Analizar el archivo de configuración [struts.xml] [AbstractBeanSelectionProvider] la Elección de frijol (struts) para (com.opensymphony.xwork2.ObjectFactory) [AbstractBeanSelectionProvider] la Elección de frijol (struts) para (com.opensymphony.xwork2.de la fábrica.ActionFactory) [AbstractBeanSelectionProvider] la Elección de frijol (struts) para (com.opensymphony.xwork2.de la fábrica.ResultFactory) [AbstractBeanSelectionProvider] la Elección de frijol (struts) para (com.opensymphony.xwork2.de la fábrica.ConverterFactory) [AbstractBeanSelectionProvider] la Elección de frijol (struts)para (com.opensymphony.xwork2.de la fábrica.InterceptorFactory)
    • yo soy el acceso a la aplicación a través de este enlace : localhost/struts2/inicio de sesión.la acción y llegar por debajo de mensaje de error. Estado HTTP 404 – no Hay ninguna Acción asignada para el espacio de nombres de [/] y el nombre de la acción [inicio de sesión] asociado con context path [/struts2].
    • has cambiado tu forma de código de nombre de la acción?
    • sí, he cambiado.Sigue recibiendo el mismo error…
    • en su struts.xml ¿has cerrado los puntales de la etiqueta de verificación de it <struts>

  2. 1

    Sé que esta pregunta es un poco anticuado, pero también pensé que la pena mencionar, para aquellos que acaban de tropiezo en este post de nuevo y sigue experimentando el problema; suponiendo que estés 100% seguro de que tu asignaciones son correctas y que su web.xml contiene el filtro apropiado, intente lo siguiente:

    1. Detener su servidor Tomcat
    2. Crear un «clases» en su carpeta «WEB-INF» carpeta
    3. Mover su struts.xml archivo en el recién creado «clases» de la carpeta
    4. Haga clic derecho sobre el Servidor Tomcat y seleccione «Limpiar» – no es necesario, pero recomiendo hacerlo.
    5. De inicio de Tomcat de nuevo y esperar lo mejor 🙂

    Como una ayuda visual, su WEB-INF debe terminan buscando algo como esto:

    Estado HTTP 404 - no Hay ninguna Acción asignada para el espacio de nombres de [/] y el nombre de la acción [inicio de sesión] asociado con context path [/struts2]

    Si usted todavía está experimentando el problema, revise los tubos de las asignaciones de nuevo, así como su web.xml

  3. 1

    No tengo puntos suficientes para responder de Ryan comentario ni de la tasa de él, pero lo que dice es una solución válida en casos concretos, y voy a decir por qué.

    A veces las carpetas que cree en un proyecto no se toma como recursos de la aplicación, y usted tiene que configurar.

    Me explico a mí mismo con un ejemplo práctico que puede haber ocurrido a algunos compañeros que pidió para este problema:

    Cuando están en vías de desarrollo con Eclipse, tal vez usted elija otro explorador de proyectos de Eclipse por defecto del «Explorador de Proyectos», como el «Navigator», por ejemplo.
    El uso de «Navigator» de la vista, puede crear carpetas, pero este carpetas no paquete de recursos (como lo son en el momento de crear «paquete de recursos» con el valor de «Explorador de Proyectos»), por lo que Struts2 no se puede encontrar «struts.xml» archivo para configurar las acciones.
    Así, las únicas carpetas que su proyecto proceso como «paquete de recursos» son los que debajo de WEB-INF como Eclipse en «Proyectos Web Dinámicos» de forma predeterminada.

    Así que, asegúrese de tener todos los archivos de configuración en un «paquete de recursos».

  4. 0

    En su LoginAction.java propiedades que tomó son

    private String userName;
    private String password;

    Pero en ti login.jsp que escribió como

    <s:textfield name="uname" key="label.username" size="20"/>
    <s:password name="password" key="label.password" size="20"/>

    Cambio

    <s:textfield name="uname" key="label.username" size="20"/> a

    <s:textfield name="userName" key="label.username" size="20"/>

    Espero que esta respuesta resuelve tu problema …

  5. 0

    hacer los cambios en struts.xml archivo, agregar namespace="/" atributo en
    como
    <package name="default" namespace="/" extends="struts-default">

  6. 0

    Para resolver este problema tuve que crear una carpeta de clases en WEB-INF y lugar de la struts.xml archivo allí. Coloqué el .jsp archivos en la carpeta web y se coloca '/' antes de la .jsp archivos, por ejemplo /x.jsp

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea