java - 带有 RestEasy 和 FileServer 的 Netty

标签 java netty resteasy

我可以将 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();
}

两者都可以通过不同的端口一起使用,但是我如何将这两种方法集成到一个端口上运行一个 Netty 服务器?

更新 目前我使用这个设置:

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

最佳答案

您基本上必须将不同的处理程序组合到一个新的 ServerPipelineFactory 中。一种方法是创建一个管道,该管 Prop 有已经存在的通用处理程序,加上一个检查请求的“调度程序”处理程序,并根据 URL 路径动态添加用于静态文件服务或 resteasy 处理的处理程序。

关于java - 带有 RestEasy 和 FileServer 的 Netty,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17260102/

相关文章:

java - Struts2 转换枚举数组用单个空值填充数组

java - 为什么我的 Java/Spring/Tomcat 堆栈将非英语字符翻译成两个单独的字符?

java - Spring使用运行时对象设置属性?

model-view-controller - RESTeasy并返回带有模型的JSP页面

java - 在java中处理异常并继续进程而不终止

java - Netty - 忽略失败的 IP_TOS 设置

java - Netty channelRead()读写方法

Java Netty 负载测试问题

json - Wildfly:ExceptionMapper 未通过 RestEasy JSR-303 Bean 验证触发

java - Resteasy @Consume json 因 java.util.Map 失败