मैप नहीं किया जा रहा है मेरे पास एक वसंत वेब एप्लिकेशन है, जिसमें कुछ नियंत्रक हैं। मेरी समस्या यह है कि पुनर्निर्माण करने की कोशिश करते समय .war को टॉमकैट (या बस पुनरारंभ करने के लिए) नियंत्रकों को पहली कोशिश से मैप नहीं किया जा रहा है। मुझे ऐप को फिर से नियोजित करना होगा या फिर अंततः फिर से शुरू करना होगा जब तक कि आखिरकार मैप नहीं किया जाता ... मुझे नहीं पता कि यह क्यों हो रहा है।जावा वसंत नियंत्रक को
मेरी नियंत्रकों में से एक:
@RestController
@RequestMapping("kt")
public class KTIntegrationController {
@Autowired
KtImportService importService;
@ExceptionHandler(ItemNotFoundException.class)
@ResponseStatus(value= HttpStatus.NOT_FOUND)
public RestError handleNotFoundException(ItemNotFoundException e) {
return new RestError(404, "NOT FOUND", e.getMessage());
}
@RequestMapping(value="import/to-db", method=RequestMethod.POST)
public RestResponse<List<String>> loadToDB(@RequestParam("initiator") String initiator,
@RequestParam("process") String pid,
@RequestParam("category") String institution) throws KtImportException {
return new RestResponse<List<String>>(importService.loadToDB(initiator,pid,institution));
}
}
बिलाव लॉग (जब नियंत्रक मैप नहीं किया गया था):
...
...
[12:47:40.887] INFO o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: org.springframework.boot[email protected]bf5b3f: startup date [Thu Aug 27 12:47:23 EEST 2015]; root of context hierarchy
[12:47:41.107] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[12:47:41.108] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[text/html],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
[12:47:41.173] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[12:47:41.173] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[12:47:41.291] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[12:47:41.895] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
[12:47:41.922] INFO o.s.boot.SpringApplication - Started application in 19.463 seconds (JVM running for 547.311)
...
...
बिलाव लॉग (जब नियंत्रक मैप किया गया था):
...
...
[11:27:39.426] INFO o.s.w.s.m.m.a.RequestMappingHandlerAdapter - Looking for @ControllerAdvice: org.springframework.boot[email protected]1722a662: startup date [Thu Aug 27 11:27:28 EEST 2015]; root of context hierarchy
[11:27:39.577] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/kt/import/to-db],methods=[POST],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public com.gerasolutions.rest.RestResponse<java.util.List<java.lang.String>> com.gera.integration.rc.rest.controller.KTIntegrationController.loadToDB(java.lang.String,java.lang.String,java.lang.String) throws com.gera.integration.rc.core.domain.KtImportException
...
...
[11:27:39.586] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[],custom=[]}" onto public org.springframework.http.ResponseEntity<java.util.Map<java.lang.String, java.lang.Object>> org.springframework.boot.autoconfigure.web.BasicErrorController.error(javax.servlet.http.HttpServletRequest)
[11:27:39.586] INFO o.s.w.s.m.m.a.RequestMappingHandlerMapping - Mapped "{[/error],methods=[],params=[],headers=[],consumes=[],produces=[text/html],custom=[]}" onto public org.springframework.web.servlet.ModelAndView org.springframework.boot.autoconfigure.web.BasicErrorController.errorHtml(javax.servlet.http.HttpServletRequest)
[11:27:39.634] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/webjars/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[11:27:39.635] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[11:27:39.706] INFO o.s.w.s.h.SimpleUrlHandlerMapping - Mapped URL path [/**/favicon.ico] onto handler of type [class org.springframework.web.servlet.resource.ResourceHttpRequestHandler]
[11:27:40.009] INFO o.s.j.e.a.AnnotationMBeanExporter - Registering beans for JMX exposure on startup
[11:27:40.022] INFO o.s.boot.SpringApplication - Started application in 12.283 seconds (JVM running for 19.89)
...
...
मैं जवाब खोजने की उम्मीद न करें कि इसे कैसे ठीक किया जाए, क्योंकि यह एक बहुत भ्रमित बग है (ठीक है, कम से कम मेरे लिए), लेकिन कुछ विचार या पॉइंटर्स जहां मैं दिखना शुरू कर सकता हूं वह सबसे अधिक खुशहाल होगा।
--EDIT--
परियोजना संरचना:
app
-> src
-> main
-> java
-> com.app.a
-> c
-> config
-> Config.class
-> r
-> controller
-> Controller.class
Application.class
ServletInitialiazer.class
-> resources
-> webapp (this is empty)
Application.class:
@Configuration
@ComponentScan(basePackages={"com.app.a.*"})
@EnableAutoConfiguration
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
ServletInitializer.class:
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Application.class);
}
}
Config.class डेटा स्रोत है और ओथ आर बीन्स इसमें परिभाषित किया गया। , सब कुछ काम करता है, नियंत्रकों हमेशा से रहे हैं mvn spring-boot:run
: अगर मैं बस अपने लैपटॉप से इस एप्लिकेशन .war बूट (इस बग को प्रभावित नहीं होना चाहिए)
--EDIT--
इतना ही नहीं, कमांड लाइन का उपयोग कर पहली कोशिश से मैप किया जा रहा है।
उदहारण के लिए:
दुर्भाग्य से, यह काम नहीं प्रतीत होता है। उल्लेख करने के लिए भूल गए, कि यह ऐप बहुत ही समान संरचना वाले किसी अन्य प्रोजेक्ट पर निर्भर करता है। तो घटक स्कैन इस तरह दिखता है: '@ कॉम्पोनेंटस्कैन (बेसपैकेज = {"com.app.a. *", "com.app.a.services"})' com.app.a.services अन्य प्रोजेक्ट में है (जार फ़ाइल शामिल है मेवेन depenceny के माध्यम से) – CrazySabbath