2017-05-02 18 views
1

私は基本的なSpringBootアプリケーションを持っています。 Spring Initializer、組み込みTomcat、Thymeleafテンプレートエンジン、およびパッケージを実行可能なJARファイルとして使用しています。SpringBootがハンドラメソッドを見つけることができません

これはこれは、コントローラ

@Controller 
public class MockupIndexController { 
    @RequestMapping("/mockup/index") 
    public String welcome(Map<String, Object> model) { 
     return "mockups/index"; 
    } 
} 

この私のpom.xml

<dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-actuator</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>com.tdk.iot.core</groupId> 
      <artifactId>tdk-core</artifactId> 
      <version>0.0.1-SNAPSHOT</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
    </dependencies> 

しかし、私はURLでこれを入れている

@SpringBootApplication 
public class TdkApplication { 
    public static void main(String[] args) { 
     SpringApplication.run(TdkApplication.class, args); 
    } 
} 

メインクラスです:

0私は、私はそれがデフォルトでスキャンされませんパッケージにある原因あなたのコントローラクラスは、スキャン中に検出されないと仮定し、コンソール

o.s.web.servlet.DispatcherServlet  : Servlet 'dispatcherServlet' configured successfully 
o.s.web.servlet.DispatcherServlet  : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/mockup/index] 
s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /mockup/index 
s.w.s.m.m.a.RequestMappingHandlerMapping : Did not find handler method for [/mockup/index] 
o.s.w.s.handler.SimpleUrlHandlerMapping : Matching patterns for request [/mockup/index] are [/**] 
o.s.w.s.handler.SimpleUrlHandlerMapping : URI Template variables for request [/mockup/index] are {} 
o.s.w.s.handler.SimpleUrlHandlerMapping : Mapping [/mockup/index] to HandlerExecutionChain with handler [ResourceHttpRequestHandler [locations=[ServletContext resource [/], class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/]], resolvers=[[email protected]91134]]] and 1 interceptor 
o.s.web.servlet.DispatcherServlet  : Last-Modified value for [/mockup/index] is: -1 
o.s.web.servlet.DispatcherServlet  : Null ModelAndView returned to DispatcherServlet with name 'dispatcherServlet': assuming HandlerAdapter completed request handling 
o.s.web.servlet.DispatcherServlet  : Successfully completed request 
o.s.web.servlet.DispatcherServlet  : DispatcherServlet with name 'dispatcherServlet' processing GET request for [/error] 
s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /error 
+0

私はあなたを想定しています

コントローラをcom.app.mainデフォルトでスキャンされないパッケージ内にあるため、スキャン中にコントローラクラスが見つかりません。あなたのアプリケーションはcom.tdk.appのようなもので、あなたのコントローラはcom.tdk.controllerのものだと思いますか?はいの場合は、アプリを1レベル上のcom.tdkに移動するだけで問題は解決します。 –

+0

@ daniel.eichten、答えに変換してください –

答えて

5

で次のログを得ました。あなたのアプリケーションはcom.tdk.appのようなもので、あなたのコントローラはcom.tdk.controllerのものだと思いますか?はいの場合は、アプリを1レベル上のcom.tdkに移動するだけで問題は解決します。

0

"TdkApplication"がcom.testパッケージにある場合、コントローラーパッケージは "TdkApplication"の一番下のパッケージでなければなりません。コントローラーはcom.test.controllerパッケージの下にある必要があります。我々は

アプリケーションパッケージは、コントローラがcom.app.controllerだろうcom.app

ようにする必要があります動作します以下のアプリケーションパッケージで

0

を比較するときに1つのレベル下のパッケージを意味します。

あなたは以下のようにそれを使用するならば、春はコントローラ

アプリケーションパッケージをスキャンするでき次のようになります。com.app.controller

関連する問題