2010-04-23 2 views
1

Je travaille sur une application Spring en utilisant Tomcat 6 et Spring 2.5. J'essaie d'obtenir un mappage d'URL correct. Ce que je voudrais avoir du travail est la suivante:Aide au mappage de servlet - Possible d'éviter le référencement du nom de contexte?

http://localhost:8080/idptest -> doesn't work 

Mais au lieu, je dois faire référence au nom du contexte dans mon URL afin de résoudre la mise en correspondance:

http://localhost:8080/<context_name>/idptest -> works 

Comment puis-je éviter la obligation de référencer le nom du contexte dans mon URL sans utiliser un moteur de réécriture/proxy Apache?

Voici la définition de servlet et la cartographie de mon web.xml:

<servlet> 
    <servlet-name>idptest</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
    <param-value>/WEB-INF/conf/idptest.xml</param-value> 
    </init-param> 

    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>idptest</servlet-name> 
    <url-pattern>/</url-pattern> 
</servlet-mapping> 

est ici les grandes lignes de mon contrôleur (montrant des annotations pour les correspondances de demande):

@Controller 
@RequestMapping("/idptest") 
public class MyController { 

    @RequestMapping(method=RequestMethod.GET) 
    public String setupForm(Model model){ 
      MyObject someObject = new MyObject(); 
     model.addAttribute("someObject", someObject); 
     return "myform"; 
    } 

    @RequestMapping(method = RequestMethod.POST) 
    public String processSubmit(@ModelAttribute("someObject") MyObject someObject) throws Exception { 
     // POST logic... 
    } 
} 

Merci!

Répondre

4

Cela va dépendre de votre conteneur de servlet, pour Tomcat - vous avez à peu près à déployer votre webapp comme webapp ROOT, qui est, sous $ CATALINA_HOME/webapps/ROOT/

Plus d'info here

+0

@nos merci, mis à jour ma question w/le conteneur et la version. –

1

Il suffit de renommer votre fichier guerre à ROOT.war, puis l'application s'exécute dans le contexte racine (ie avec le nom de contexte vide)

Questions connexes