Netty结合RestEasy和文件服务器

3

我可以使用Netty与Resteasy一起使用,或者作为文件服务器

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

使用不同的端口可以同时进行这两种方法,但是如何在单个端口上运行一个Netty服务器并整合这两种方法呢?

更新: 目前我使用的设置如下:

<dependency>
  <groupId>org.jboss.resteasy</groupId>
  <artifactId>resteasy-netty</artifactId>
  <version>3.0.1.Final</version>
</dependency>
1个回答

1
你基本上需要将不同的处理程序组合成一个新的 ServerPipelineFactory。其中一种方法是创建一个具有常见处理程序的管道,再加上一个“分派器”处理程序,该处理程序检查请求并根据 URL 路径动态添加用于静态文件服务或 resteasy 处理的处理程序。

你能给出一些具体的例子来描述这种情况吗? - Thor

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接