2016-03-15 2 views
2

J'ai écrit un code simple à intégrer repos avec Struts 2.3.24action non cartographié erreur en utilisant le plugin Struts REST

J'ai mon Struts XML

<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" 
         "http://struts.apache.org/dtds/struts-2.3.dtd"> 
<struts> 
    <constant name="struts.mapper.class"      value="rest" /> 
    <!-- Overwrite Convention --> 
    <constant name="struts.convention.action.suffix"   value="Controller"/> 
    <constant name="struts.convention.action.mapAllMatches" value="true"/> 
    <constant name="struts.convention.default.parent.package" value="com.pag.rest.service"/> 
    <constant name="struts.convention.package.locators"  value="service"/> 
</struts> 

Et ma classe de contrôleur est

package com.pag.rest.service; 
public class RequestController { 

    // GET 
    public String index() { 
     return "SUCCESS"; 
    } 

    // GET 
    public String show() { 
     return "SUCCESS"; 
    } 

    // POST 
    public String create() { 
     return "Create - SUCCESS"; 
    } 

    // PUT 
    public String update() { 
     return "SUCCESS"; 
    } 

    // DELETE 
    public String destroy() { 
     return "SUCCESS"; 
    } 
} 

Chaque fois que j'essaie d'accéder au service .. il est dit non trouvé avec l'action non cartographiée exception

S'il vous plaît laissez-moi savoir ce que je dois faire d'autre afin de faire fonctionner le code

+0

Ne pas retourner '" SUCCESS "': retourner 'Action.SUCCESS' (la constante), ou sa valeur,' "succès" '. Ne renvoyez pas non plus '" Create - SUCCESS ".'. Vous avez probablement besoin de lire quelque chose sur le mappage des résultats de Struts2. –

+0

Pouvez-vous essayer de changer le nom de votre contrôleur? Parce que Request pourrait en quelque sorte être un mot réservé, alors s'il vous plaît essayez avec FoobarController, juste pour l'exclure –

+0

A essayé après avoir changé le nom de la classe, encore il donne HTTP 404 .. erreur non trouvée – Harshal

Répondre

0

Le package parent doit être rest-default. Ajouter la constante suivante dans le fichier de configuration struts.xml:

<constant name="struts.convention.default.parent.package" value="rest-default"/> 

Supprimer

<constant name="struts.convention.package.locators" value="service"/> 

Et Renommez votre nom de package à com.pag.rest.actions. Il recherchera vos contrôleurs sous le dossier actions.

+0

J'ai fait tous dit des changements, maintenant il me donne erreur - HTTP Status 404 -/StrutsRestProgram/request – Harshal

+0

C'est le même code d'état. –

+0

Maintenant, il ne donne pas d'action non cartographiée .. cela signifie qu'il considère le repos. toute suggestion pour se débarrasser de cette erreur – Harshal