2013-06-23 4 views
3

я могу использовать Нетти с Resteasy или как Fileserver:Нетти с 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(); 
} 

оба вместе возможны разные порты, но как я могу интегрировать оба подхода, работает один сервер Netty на одном порту?

Update В настоящее время я использую эту установку:

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

ответ

1

Вы бы в основном придется комбинировать различные обработчики в новый ServerPipelineFactory. Один из подходов заключался бы в создании конвейера, в котором уже есть обычные обработчики, а также обработчик «диспетчера», который проверяет запрос, и в зависимости от пути URL динамически добавляет обработчики для статического обслуживания файлов или для обработки рестайлинга.

+0

Можете ли вы привести некоторые конкретные примеры для описанного сценария? – Thor