Struts2 ne trouve pas les fichiers jsp

voix
2

Je l'ai essayé en vain de mettre en place une simple application Struts2 je peux obtenir avec l'apprentissage du cadre. Au fond, ce que je me attends arriver est que lorsqu'une action est déclenchée non défini, puis une page par défaut sera affiché.

Cette application est en cours d'élaboration dans Eclipse.

J'ai un fichier struts.xml très simple mis en place dans le répertoire WEB-INF / classes:

<struts>
<!-- Include webwork default (from the Struts JAR). -->
<include file=struts-default.xml />

<!-- Configuration for the default package. -->

<package name=default extends=struts-default>
    <action name=*>
        <result>/test.jsp</result>
    </action>
</package>
</struts>

Je le fichier test.jsp (juste le modèle de jsp par défaut qui est créé dans Eclipse, à savoir « insérer le titre ici ») au niveau WebContent, et la page d'accueil (qui déclenche l'action) est index.jsp est également à ce même niveau et s'affiche au démarrage du programme. Il est défini comme suit:

 <%@page contentType=text/html pageEncoding=UTF-8%>
 <%@ taglib prefix=s uri=/struts-tags %>

<html>
  <head>
    <title>GlassFish JSP Page</title>
  </head>
<body>
<h1>Hello World!</h1>
<s:form action=other>
   <s:submit value=Submit />
</s:form>
</body>
</html> 

J'ai aussi essayé avec d'autres noms d'action, et peu importe ce que, je reviens une page 404 not found. J'ai essayé cela sur les deux GlassFish et Websphere 6.1.1 avec les mêmes résultats, me conduit à penser qu'il ya quelque chose qui me manque qui est probablement juste en face de moi impliquant soit la structure de répertoire (les chemins relatifs aux montants. fichier xml ou la racine de contexte?) ou un fichier de configuration.

Après quelques éprouvante, je suis en mesure d'obtenir cette place et en cours d'exécution sur Eclipse Ganymede sur Mac OS X 10.5.6 en utilisant Glassfish, mais j'ai toujours pas de chance avec IBM Websphere et Application Server Toolkit (un dérivé Eclipse) sous Windows XP. Je suis un peu suspect que cela pourrait avoir quelque chose à voir avec le navigateur.

Je viens essayé d'ajouter un fichier appelé « other.action » dans le même répertoire que mes autres fichiers JSP mentionnés ci-dessus. Maintenant, quand je clique sur le bouton Envoyer qui est lié à l ' « autre » l'action, l'action se déroule avec succès à ma page test.jsp. Je trompe peut-être, mais je ne crois pas que je devrais donner un fichier nommé « someaction.action » pour chaque possible « uneAction » que je peux avoir besoin d'utiliser (je sais que je ne l'ai pas besoin du système d'exploitation X courir de mon application).

Autres mises à jour - Je viens d'essayer sur Firefox 3.5.2 et en cours d'exécution sur ce navigateur a donné les mêmes résultats - fichier non trouvé sans le fichier « other.action » sur Websphere, maintenant je pense qu'il est un problème de configuration Websphere.

Créé 26/08/2009 à 23:05
source utilisateur
Dans d'autres langues...                            


3 réponses

voix
2

En utilisant Firefox a fourni la clé que je avais besoin pour déterminer la source de ce problème - l'erreur 404: message SRVE0190E qui m'a dit que le problème était une configuration Websphere.

Le problème est expliqué de façon plus détaillée sur le lien suivant:

IBM Websphere WebContainer jette un FileNotFoundException lorsqu'une demande est reçue pour un fichier statique qui n'existe pas sur le système de fichiers.

Et la solution est expliquée à ce lien (dans ce cas, le réglage de la valeur com.ibm.ws.webcontainer.invokefilterscompatibility = true):

Websphere mise en place des propriétés personnalisées

Pour être complet, je vais mettre comment corriger ce problème:

-Dans la console d'administration, cliquez sur « Serveurs » et sous Serveurs cliquez sur « Serveurs d'applications »

-cliquez sur le serveur auquel la propriété personnalisée doit être appliqué

-Sous « Configuration » et « Paramètres du conteneur » cliquez sur « Paramètres du conteneur Web » et sous Paramètres du conteneur Web cliquez sur « Conteneur Web »

-Sous « Configuration » et « Propriétés supplémentaires » cliquez sur « Propriétés personnalisées »

-Dans la page Propriétés personnalisées, cliquez sur « Nouveau »

-Dans la page des paramètres, entrez le nom de la propriété personnalisée à ajouter dans le champ « Nom » et la valeur à définir pour la propriété personnalisée dans le champ « Valeur ». Notez que certaines propriétés sont sensibles à la casse. Pour cette question, la propriété est « com.ibm.ws.webcontainer.invokefilterscompatibility » et la valeur sera « true »

-cliquez « Appliquer » ou « OK »

-cliquez « Enregistrer » dans la boîte « Messages » qui apparaît Redémarrez le serveur pour la propriété personnalisée pour prendre effet

Créé 27/08/2009 à 03:16
source utilisateur

voix
0

Je peux me tromper, mais pour chaque action, il va à /test.jsp. Pourtant, vous venez de créer [nom app] /index.jsp ?? Créer un [Nom de l'application] /test.jsp et pointer là !? (Essayez de supprimer la barre oblique dans le fichier XML avant test.jsp?)

Créé 26/08/2009 à 23:11
source utilisateur

voix
0

Êtes - vous frapper définitivement la racine de contexte pour votre application. dire dans web.xmll'application a un nom ce qui est normalement le même que la racine de contexte , sauf si vous avez emballé l'application en un fichier de guerre avec un autre nom.

http://yourserver:8080/yourcontextroot

Je crois que Stuts 2 est livré avec quelques exemples d'applications web et quelques archétypes Maven. Il est toujours une bonne idée de commencer avec l'un d'entre eux puis l'adapter à vos besoins.

http://struts.apache.org/2.1.2/docs/struts-maven-archetypes.html

Struts 2 a un exemple de projet appelé struts-blank-2.x.xx.war. http://mirrors.dedipower.com/ftp.apache.org/struts/examples/struts2-blank-2.0.14.war

Vous pouvez le télécharger et le renommer .zipet de voir comment ils ont mis en place le projet.

WEB-INF / web.xml

devrait avoir le servlet struts2 et filtre

...    
<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-INF / classes / struts.xml doit être dans le dossier des classes et doit pointer vers vos supports de fichiers config

    ...
    <include file="yourconfig.xml"/>

* WEB-INF / yourconfig.xml dans le même dossier que struts.xmlet contient les correspondances pour vos actions

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

    <action name="*" class="example.ExampleSupport">
        <result>/example/test.jsp</result>
    </action>

    <!-- Add actions here -->
</package>

Tous les fichiers sont jsp dans un dossier appelé /example

Créé 26/08/2009 à 23:10
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more