2016-06-19 1 views
0

Я стараюсь следовать руководству this о том, как начать работу с Struts. Я выполнил точные шаги, но в конце я получил эту ошибку HTTP Status 404 - /Struts2-HelloWorldExample/HTTP-статус 404 на проекте Struts с tomcat

Я знаю, что ошибка 404 означает, что я смог связаться с сервером, но сервер не смог найти то, что я просил. Я подозревал, что что-то не так с моей библиотекой, но я не мог найти ничего в решении по той же проблеме.

Мой Java-код:

package com.aziz; 

public class HelloWorldExample { 

    private String name; 

    public String execute() throws Exception { 
     return "success"; 
    } 

    public String getName() { 
     return name; 
    } 

    public void setName(String name) { 
     this.name = name; 
    } 
} 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app id="WebApp_ID" version="3.1" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"> 
    <display-name>Struts 2 - Hello World Example</display-name> 
    <welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
    </welcome-file-list> 
    <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> 
</web-app> 

hello.jsp:

<%@taglib prefix="s" uri="/struts-tags"%> 
<!DOCTYPE html> 
<html> 
<head> 
    <title>Hello World Example</title> 
</head> 
<body> 
    Hello <s:property value="name"/>! 
</body> 
</html> 

index.jsp:

<!DOCTYPE html> 
<html> 
<head> 
    <title>Hello World Example</title> 
</head> 
<body> 
    <h1>Hello World Example</h1> 
    <form action="hello"> 
     <label for="name">Enter your name</label><br/> 
     <input type="text" name="name"/> 
     <input type="submit" value="Submit"/> 
    </form> 
</body> 
</html> 

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.devMode" value="true" /> 
    <package name="default" namespace="/" extends="struts-default"> 
     <action name="hello" 
       class="com.aziz.HelloWorldExample"> 
       <result name="success">hello.jsp</result> 
     </action> 
    </package> 
</struts> 

И я не уверен, что я делаю это правильно или неправильно, но я просто добавил вручную распорки библиотеки, я скачал из here (полного распределения) в WEB-INF/Lib папки, поэтому у меня есть эти JAR в этой папке:

И последнее, у меня нет ошибки, но это предупреждение о моих маркеров:

Я уже проверил эту ошибку, ИДК, что это значит, потому что, когда я вижу решение, кто-то сказать мне нужно решить, и какие из библиотек скопировать в WAR в свойствах проекта -> Java EE Зависимости модулей. Но в моих свойствах проекта нет такой вещи, как Java EE Module Dependencies. Мне очень нужна ваша помощь. Спасибо заранее.

+0

попытка путем изменения этого -><радушны-файл> /WebContent/index.jsp

+0

Не включайте все банки от полного распределения.Если вы не знаете, что включить, тогда загрузите дистрибутив «Основные зависимости». –

+0

Возможно, у вас неправильная конфигурация проекта в Eclipse и неправильные зависимости. Восстановите проект с Maven. –

ответ

0

Убедитесь, что вы помещаете файлы jsp внутри WEBCONTENT не в WEB-INF и пытаетесь поместить только те библиотеки, которые я привел ниже.

фонд-коллекция-3.1.jar, обыкновенных-FileUpload-1.3.1.jar, Обще-IO-2.2.jar, Обще-лан-2.4.ja, г- обыкновенных lang3-3.2.jar , Обще-каротаж 1.1.3.jar, FreeMarker-2.3.22.jar, Javassist-3.11.0.GA.jar, OGNL-3.0.13.jar, struts2-ядро-2.3.28. jar, xwork-core-2.3.28.jar,

Попробуйте это и попробуйте перезагрузить сервер и проверьте его. Упорядочите его.

С уважением, Dhanya

+0

Почему, по вашему мнению, неправильно помещать файлы в web-inf? –

+0

@AleksandrM: не имеют прямого доступа к контенту внутри папки WEB-INF, поэтому вы не сможете вызвать свой файл jsp, который создается внутри папки WEB-INF. Вы просто попытаетесь создать свои файлы jsp вне WEB-INF. –

+1

Зачем вам нужен прямой доступ? Действие -> JSP. Не так. –