2015-08-27 11 views
5

Birkaç denetleyiciye sahip bir yaylı web uygulamasına sahibim. Benim sorunum, tomcat (ya da sadece uygulama yeniden başlatılıyor) denetleyicileri yeniden konuşmaya çalışırken ilk denemeden eşleştirilmemesidir. Nihayet haritalandırılıncaya kadar uygulamayı yeniden konuşmam ya da yeniden başlatmam gerekiyor ... Bunun neden olduğuna dair hiçbir fikrim yok. Benim denetleyicilerinJava yay denetleyicisi eşlenmiyor

Bir:

@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)); 
    } 

} 

(kontrolör eşlenmemiştir.END_LIST_ITEM_TAGEND_UNORDERED_LIST_TAG) Tomcat günlüğü:

... 
... 
[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) 
... 
... 

(kontrolör çizilmiştir) Tomcat günlüğü:

... 
... 
[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) 
... 
... 

ben Burada nasıl düzeltileceğini bulmak için bir cevap bulmayı beklemeyin, çünkü bu oldukça kafa karıştırıcı bir hatadır (iyi, en azından benim için), ancak bazıları Bakmaya başlayabileceğim fikirler ya da işaretçiler en çok helpeful olurdu.

--EDIT--

Proje yapısı:

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 veri kaynağı vardır ve taneler içinde tanımlanmış. , Her şey çalışıyor, kontrolörler her zaman mvn spring-boot:run: ben sadece benim laptop bu uygulama .WAR önyükleme eğer komut satırını kullanarak,

--EDIT--

Dahası (bu hatayı etkilememeli) ilk denemeden haritalandırılıyor.

örn: Ben hataların bu tip geçmişte çalışmak buldum

cevap

1

Çözüm:

My bahar web uygulaması yazdım birkaç java projeleri (maven yoluyla dahil kavanozları) kullanıyor. Sorun, aslında java kütüphaneleri gibi kullanılan, aslında ilkbahar-önyükleme projelerinin kullanıldığı kavanozlardı. Yay önyüklemesini kullanan java projelerinden ilkbahar önyüklemesini kaldırmak bu sorunu çözdü.

0

bir şey paket tarama ayrıntı düzeyini değiştirmektir

@ComponentScan(basePackages={"com.app"}) 

Bunun çok garip olduğunu biliyorum ama geçmişte benim için çalıştı. Bunun neden olduğu hakkında hiçbir fikrim yok. soruna

+0

Maalesef bu işe yaramıyor gibi görünüyor. Unutmayın, bu uygulama çok benzer bir yapıya sahip başka bir projeye bağlıdır. Yani componentScan şöyle görünüyor: '@ComponentScan (basePackages = {" com.app.a. * "," com.app.a.services "})' com.app.a.services diğer projede (jar dosyası dahil maven depenceny aracılığıyla) – CrazySabbath