2012-04-12 3 views
0

I mis en œuvre un exemple simple avec entretoises 2.Struts 2: "La demande n'est pas ressource disponible"

Mais je cette erreur en cliquant sur l'action:

"La ressource est pas disponible"

Il semble que le serveur apache ne trouve pas le fichier jsp.

Voici l'erreur en frensh.

Etat HTTP 404 - /StrutsTraining/classes/Hello.jsp 

type Rapport d''état 

message /StrutsTraining/classes/Hello.jsp 

description La ressource demandée (/StrutsTraining/classes/Hello.jsp) n'est pas disponible. 

Mon 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="true" /> 
    <package name="default" namespace="/" extends="struts-default"> 
     <action name="action1" class="org.training.Hello"> 
      <result name="Hello">classes/Hello.jsp</result> 
      <result name="goodBy">classes/GoodBy.jsp</result> 
     </action> 
    </package> 
</struts> 

Mon 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>StrutsTraining</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>index.html</welcome-file> 
    </welcome-file-list> 
</web-app> 

fichiers Jsp sont sous:

/StrutsTraining/WebContent/WEB-INF/classes 
+0

une raison particulière pour laquelle vous les placez dans le dossier classes? –

+1

Il y a un plugin struts2 pour activer les JSPs dans le classpath je pense, vérifiez le registre du plugin struts2 si c'est quelque chose que vous devez faire, mais simplement ne pas les mettre là fournirait une résolution plus rapide. Je recommande/WEB-INF/content comme un bon point de départ, alors si vous décidez d'utiliser le super plugin struts2-conventions-et que vous économisez beaucoup de temps, vous serez légèrement plus à l'aise (par défaut c'est là aime les JPS à vivre). – Quaternion

+0

c'était une erreur. aucune raison de mettre jsp dans le classpath. Merci. –

Répondre

0

Ce n'est pas une bonne idée de mettre jsp dans le dossier classes crée un dossier jsp à l'intérieur de WEB-INF dossier et gardez vos fichiers jsp.

 <action name="action1" class="org.training.Hello"> 
      <result name="Hello">/WEB-INF/jsp/Hello.jsp</result> 
      <result name="goodBy">/WEB-INF/jsp/GoodBy.jsp</result> 
     </action> 
Questions connexes