2014-11-25 2 views
0

Я новичок в расположении и создании базового приложения в struts2. Но когда я пытаюсь запустить приложение, следующая ошибка: HTTP Status 404 - описание запрошенного ресурс() не доступенstruts2 программа не работает

Моего каталога: папки HelloWorldStruts2 под WebApps папки кота.

в папке проекта HelloWorldStruts2: WEB-INF (папка), HelloWorld.jsp, index.jsp

в папку WEB-INF: классы (папки), Lib (папка), web.xml

в папке классов: ком (папка) -> tutorialspoint (папка) -> struts2 (папка) -> HelloWorldAction (файл класса) struts.xml

в Lib папку: файлы фляги:

index.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
<h1>Hello World From Struts2</h1> 
<form action="hello"> 
<label for="name">Please enter your name</label><br/> 
<input type="text" name="name"/> <input type="submit" value="Say Hello"/> </form> 
</body> 
</html> 

HelloWorld.jsp

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" 
    pageEncoding="ISO-8859-1"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<%@ taglib prefix="s" uri="/struts-tags" %> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 
</head> 
<body> 
Hello World, <s:property value="name"/> 
</body> 
</html> 

HelloWorldAction.java

package com.tutorialspoint.struts2; 
public class HelloWorldAction { 
    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 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"> 
<display-name>Struts 2</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.FilterDispatcher </filter-class> 
</filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> 

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="helloworld" extends="struts-default"> 
<action name="hello" class="com.tutorialspoint.struts2.HelloWorldAction" method="execute"> 
<result name="success">/HelloWorld.jsp</result> </action> </package> </struts> 

пожалуйста, помогите

+0

У вас есть ошибки в StackTrace? –

+0

Во-первых, пожалуйста, не используйте старую версию S2 по целому ряду причин. Во-вторых, 'struts.xml' должен быть в корне пути к классам. –

ответ

0
  1. Упаковать ваш проект в WAR, не используйте разобранную структуру папок;

  2. Используйте новый фильтр, StrutsPrepareAndExecuteFilter, вместо устаревшего фильтра FilterDispatcher;

  3. Ваш DTD в web.xml, он смешивает объявления 2.5 и 3.0; настройте его на версию, поддерживаемую вашим сервером приложений (которую вы здесь не указали). Некоторые AS используют 2.4, другие 2.5, другие 3.0.

  4. Убедитесь, что у вас есть все необходимые JAR, все до последних версий (2.3.16.3 для Struts и другие версии для OGNL и FREEMARKER). Удалите неиспользуемые JAR, если они есть.

0

я предлагаю вам использовать этот фильтр в вашем web.xml и удалить любой фильтр вы используете,

<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> 
Смежные вопросы