3

Netty をResteasyで、またはFileserverとして使用できます。

public void file()
{
    ServerBootstrap bootstrap = new ServerBootstrap(
        new NioServerSocketChannelFactory(
             Executors.newCachedThreadPool(),Executors.newCachedThreadPool()));
    bootstrap.setPipelineFactory(new HttpStaticFileServerPipelineFactory());
    bootstrap.bind(new InetSocketAddress(8080));
}

public void rest()
{
    ResteasyDeployment deployment = new ResteasyDeployment();
    deployment.getActualResourceClasses().add(RestClass.class);

    NettyJaxrsServer netty = new NettyJaxrsServer();
    netty.setDeployment(deployment);
    netty.setPort(8080);
    netty.setRootResourcePath("");
    netty.setSecurityDomain(null);
    netty.start();
}

異なるポートで両方を同時に使用できますが、1 つのポートで 1 つの Netty サーバーを実行する両方のアプローチを統合するにはどうすればよいですか?

更新 現在、私はこのセットアップを使用しています:

<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-netty</artifactId>
  <version>3.0.1.Final</version>
</dependency>
4

1 に答える 1

1

基本的に、さまざまなハンドラーを新しい に結合する必要がありますServerPipelineFactory。1 つの方法として、共通のハンドラーが既に配置されているパイプラインに加えて、リクエストを検査し、URL パスに応じて静的ファイル サービスまたは RESTEasy 処理用のハンドラーを動的に追加する「ディスパッチャー」ハンドラーを作成する方法があります。

于 2013-06-24T08:06:38.750 に答える