404Error-Struts2 Пример (работает хорошо при тестировании на чистом jsp веб-модуля Dynamic We Project 3.0) - PullRequest
1 голос
/ 25 ноября 2011

Я следую этой статье http://java.dzone.com/articles/struts2-tutorial-part-27, чтобы изучить стойки 2 и получил ошибку 404 на моем сервере Tomcat 7, я протестировал еще один чистый jsp веб-модуля Dynamic We Project 3.0 на том же сервере Tomcat 7, он работает хорошо,Итак, что послужило причиной ошибки в примере Struts, так как в этом примере всего несколько файлов, поэтому первое, что мне пришло в голову, это дескриптор развертывания web.xml в примере Struts 2, вот оригинальный:

<?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>Struts2 Application</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>Login.jsp</welcome-file>
    </welcome-file-list>

</web-app>

Я обнаружил разницу, оригинальный веб-модуль 2.4, созданный мной 3.0, поэтому я заменил

<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">

на

<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_3_0.xsd" id="WebApp_ID" version="3.0">

и перезапустил сервер Tomcatдумаю, может решить проблему, но я все еще получил ошибку, поэтому я запутался, так как больше нет конкретных файлов, имеющих отношение к серверу, может ли какой-нибудь эксперт помочь мне?

Вот файл struts.xml:

<?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" />

    <constant name="struts.custom.i18n.resources"
        value="ApplicationResources" />

    <package name="default" extends="struts-default" namespace="/">

        <action name="login"
            class="net.viralpatel.struts2.LoginAction">
            <result name="success">Welcome.jsp</result>
            <result name="error">Login.jsp</result>

        </action>
    </package>
</struts>

Ответы [ 2 ]

2 голосов
/ 18 января 2013

Проверьте web.xml, а также дескриптор развертывания, созданный Eclipse, чтобы узнать, указывает ли он на правильный JSP.т.е. если jsp находится в папке JSP, файл приветствия должен быть /JSP/welcome.jsp

0 голосов
/ 25 ноября 2011

404 обычно означает page not found, но с этой небольшой информацией очень трудно сказать, что происходит не так.

есть ли какие-либо исключения / ошибки, появляющиеся на консоли сервера, если они есть. В качестве дополнительного примечания, чтобы изучить или начать работать с struts2, мой лучший способ - загрузить образец приложения с официального сайта struts2 и запустить его внутри своего кота.

это поможет вам понять структуру struts2, а также другие необходимые конфигурации.

К вашему сведению: Filter dispatcher устарел в распорках2, я должен предложить вам использовать

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

всегда лучше начинать с обновленного

редактировать

URL-адрес, по которому вы пытаетесь попасть, все еще отсутствует в сообщении, но, похоже, проблема пространства имен связана с тем, что вы определили пространство имен в вашем пакете и, как показано в этом Struts2, попытаются разрешить проблему с иерархией пространства имен, которая в вашем случае не является таковой. смог найти. прочитать пространство имен для деталей Struts2 Пространства имен

Дополнительно вставьте свой JSP-код также просто для перекрестной проверки, удалите эту строку namespace="/" из файла конфигурации Struts и убедитесь, что она работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...