2017-01-08 9 views
0

私はspring web reactiveを使用してRESTfulサービスを作成しようとしています。私は私のServerInitializationクラスの様々な豆が定義されている。このスプリングコントローラが見つかりません

@Configuration 
@ComponentScan(basePackages = "com.hcl.bc4sc.server.controller") 
public class ServerInitialization { 
... 

のように登録されたコントローラを取得するために@ComponentScanを使用しています

package com.hcl.bc4sc.server.controller; 
... 
@RestController 
@RequestMapping("/api/v1/registrar/enroll") 
public class ControllerV1RegistrarEnroll { 
... 
    @RequestMapping(method = RequestMethod.POST, consumes = "application/json") 
    public Mono<ResponseEntity> registrarEnrollPost(@RequestBody final UserInfo userInfo) { 
... 

通常の構造を有しているコントローラを持っているので、私はことを知っていますServerInitializationはSpringによって処理されています。

問題は、私はこのような春とHttpServerをし始めています方法であるかもしれない場合、私は疑問に思って:私は、URL http://localhost/api/v1/registrar/enrollを使用これをテストしようとすると

public static void boot() throws TimeoutException { 
    final GenericApplicationContext context 
      = new AnnotationConfigApplicationContext(DelegatingWebReactiveConfiguration.class, 
                ServerInitialization.class); 
    final HttpHandler handler = DispatcherHandler.toHttpHandler(context); 
    final ServerConfig config = context.getBean(ServerConfig.class); 
    applicationContext = Optional.of(context); 

    // Reactor Netty 
    final Function<HttpChannel, Mono<Void>> adapter 
      = new ReactorHttpHandlerAdapter(handler); 
    final HttpServer server = HttpServer.create(config.getHost(), config.getPort()); 
    httpServer = Optional.of(server); 
    server.ws("", adapter).startAndAwait(); 
} 

。それは404を返します。

サービスを別の方法で開始する必要がある場合は、完全な使用例を教えてください。

答えて

0

は、あなたが質問で述べたコードを1として、あなたのコントローラは

com.hcl.bc4sc.server.config 

である。しかし、あなたがやっているスキャンパッケージです:

com.hcl.bc4sc.server.controller 

あなたが最初にこの曖昧さを修正する必要があります。それでも失敗するかどうかを知りましょう。スタートアップログが役に立ちます。

+0

このメッセージにリストを貼り付けたときは、私にとって非常に遅かったです。私の動作していないコードでは、パッケージ名が一致します。私はリスティングを修正しました。コントローラは実際には 'com.hcl.bc4sc.server.controller'パッケージに入っています。 – user2102276

関連する問題