J'utilise maven + printemps + mise en veille prolongée pour créer un fichier xml sans webapp et a commencé à Minimal Tomcat 7 embedding exampletomcat embarqué intégré au printemps
structure de l'application:
webapp
|_src/main/java
| |_com.myapp.test
| |_Main.java
| |_HelloController.java
| |_MvcConfig.java
|_src/main/resources
| |_hello.jsp
|_src/test/java
|_src/test/resources
HelloController.java
@Controller
@RequestMapping("/welcome")
public class HelloController {
@RequestMapping(method = RequestMethod.GET)
public String printWelcome(ModelMap model) {
model.addAttribute("message", "Spring 3 MVC Hello World");
return "hello";
}
MvcConfig.java
@Configuration
@EnableWebMvc
public class MvcConfig {
@Bean
public InternalResourceViewResolver configureInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/");
resolver.setSuffix(".jsp");
return resolver;
}
}
tout en essayant d'ajouter fonction de printemps dans Main.java
Tomcat tomcat = new Tomcat();
tomcat.setPort(9090);
File base = new File("");
System.out.println(base.getAbsolutePath());
Context rootCtx = tomcat.addContext("", base.getAbsolutePath());
AnnotationConfigWebApplicationContext aactx = new AnnotationConfigWebApplicationContext();
aactx.scan("com.myapp");
aactx.register(MvcConfig.class);
DispatcherServlet dispatcher = new DispatcherServlet(ctx);
Tomcat.addServlet(rootCtx, "SpringMVC", dispatcher);
rootCtx.addServletMapping("/*", "SpringMVC");
tomcat.start();
j'eu cette erreur quand aller à localhost:9090/welcome.jsp
pour vérifier le serveur embarqué
Jun 04, 2013 4:34:39 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/hello.jsp] in DispatcherServlet with name 'SpringMVC'
Jun 04, 2013 5:00:38 PM org.springframework.web.servlet.DispatcherServlet noHandlerFound
WARNING: No mapping found for HTTP request with URI [/favicon.ico] in DispatcherServlet with name 'SpringMVC'
pourquoi j'eu cette erreur et comment le résoudre?
Merci d'avance!
Dans votre code, vous avez DispatcherServlet (ctx) mais il doit s'agir de DispatcherServlet (aactx). Je devine que c'est juste un copier/coller typo ici et pas votre code réel? –