मैंने Google, stackoverflow scoured किया है, और हर फोरम मैं कुछ दिनों के लिए देख सकता हूं और मेरे कीबोर्ड को हेडबूट का लक्ष्य होने का गंभीर खतरा है।एक्सएमएल मुक्त स्प्रिंग 3.1 HTTP अनुरोध के लिए कोई मैपिंग नहीं मिली
मैं एक एक्सएमएल मुक्त सेटअप के साथ एक बहुत छोटा वसंत 3.1 एमवीसी चला रहा हूं। समस्या यह है कि जब मैं इसे शुरू करता हूं तो मैं देखता हूं;
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/start.action],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView com.xxxxxx.info.HomeController.start(javax.servlet.http.HttpServletRequest)
INFO : org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping - Mapped "{[/*],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.web.servlet.ModelAndView com.xxxxxx.info.HomeController.home(java.util.Locale,org.springframework.ui.Model)
फिर भी जब मैं उन यूआरएल में से किसी एक को मारने का प्रयास करता हूं तो मैं अपने नियंत्रक आग के अंदर अपने लॉगिंग स्टेटमेंट देखता हूं और फिर तुरंत मिलता हूं;
INFO : com.xxxxxx.info.HomeController - Welcome home! the client locale is en_US
WARN : org.springframework.web.servlet.PageNotFound - No mapping found for HTTP request with URI [/WEB-INF/jsps/home.jsp] in DispatcherServlet with name 'dispatcher'
यहां मेरी स्रोत फ़ाइलें हैं।
प्रारंभकर्ता -
public class Initializer implements WebApplicationInitializer {
public void onStartup(ServletContext servletContext) throws ServletException {
AnnotationConfigWebApplicationContext mvcContext = new AnnotationConfigWebApplicationContext();
mvcContext.register(MvcConfig.class);
ServletRegistration.Dynamic dispatcher = servletContext.addServlet("dispatcher", new DispatcherServlet(mvcContext));
dispatcher.setLoadOnStartup(1);
dispatcher.addMapping("/*");
}
}
MvcConfig -
@Configuration
@EnableWebMvc
@ComponentScan(basePackages = "com.xxxxxx.info")
public class MvcConfig {
@Bean
public InternalResourceViewResolver configureInternalResourceViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
resolver.setPrefix("/WEB-INF/jsps/");
resolver.setSuffix(".jsp");
return resolver;
}
}
नियंत्रक -
@Controller
public class HomeController {
private static final Logger logger = LoggerFactory.getLogger(HomeController.class);
/** Simply selects the home view to render by returning its name. */
@RequestMapping(value = "/*")
public ModelAndView home(Locale locale, Model model) {
logger.info("Welcome home! the client locale is " + locale.toString());
Date date = new Date();
DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
String formattedDate = dateFormat.format(date);
model.addAttribute("serverTime", formattedDate);
return new ModelAndView("home", model.asMap());
}
@RequestMapping(value = "/start.action")
public ModelAndView start(HttpServletRequest request) {
logger.info("Starting!");
return new ModelAndView("start", null);
}
}
डिस्पैचर मानचित्रण बदलने के लिए "/" के रूप में कई पदों मैं सुझाव पाया यह पूरी तरह से तोड़ने के लिए लग रहे हैं । अगर मैं सर्वर को "/" से पुनरारंभ करता हूं तो वसंत द्वारा कुछ भी रिपोर्ट नहीं किया जाता है, कुछ भी मैप नहीं होता है, बस एक टॉमकैट स्टार्टअप लॉग और कुछ और काम नहीं करता है।
मेरे फ़ाइल संरचना है -
| com.xxxxxx.info
- Initializer.java
- MvcConfig.java
- HomeController.java
| src
| main
| webapp
| WEB-INF
| jsps
- home.jsp
- start.jsp
तो यह मेरी नियंत्रक सही ढंग से हिट करने के लिए प्रकट होता है लेकिन जब यह दृश्य का नाम हो जाता है यह सही जगह पर हल नहीं होती है। मैं यहाँ क्या याद आ रही है, यह कुछ सरल मैं अनदेखी की है की तरह लगता है ...
@ सरफिम यह स्पष्ट नहीं है कि प्रेषक सर्वलेट के लिए गलत/मैपिंग के साथ क्या गलत हो सकता है, आपको सबसे पहले यह जांचना चाहिए कि नियंत्रक मैपिंग गैर-रूट अनुरोधों जैसे 'hello.html' के लिए काम करता है। –
लिंक के लिए बहुत बहुत धन्यवाद। समाधान पर मृत था। मैंने अपना प्रेषक कोड 'dispatcher.addMapping ("*। Action") में बदल दिया; ' – Sarophym