嵌入式 Jetty 9 - 我需要 Websocket 服务器、REST Servlet 和文件服务器

埃夫罗斯

是否可以将所有 3 个(Websocket、REST Servlet 和文件服务器)都放在同一个端口上?

我一直在网上寻找很多部分解决方案的例子,但是 Jetty 设置有很多变化,很难确定哪些对我有用。

我更喜欢使用 JSR-356 websocket api 而不是 Jetty 专有的,以防我以后必须移动到不同的服务器。

乔金·艾德费尔特

是的,如果 HTTP 路径不同,最简单。

  • 网络套接字开启 /ws/*
  • 休息 /api/*
  • 静态文件服务于/static/*(或只是 on /,这意味着对于所有不以/ws/开头的请求/api/

但是如果您不想使用路径,那么您必须使用其他一些请求分隔符。

  • WebSocket 升级是带有 的 GET,Connection: upgrade因此不会与 REST 或文件服务发生冲突。
  • 如果路径重叠,REST 很容易与文件服务发生冲突。(如果客户要求/stuff/here并且您设置了 REST,/*那么该请求意味着什么?REST 还是静态文件?)
  • 文件服务传统上由 servlet 规范的默认 url-pattern 处理/,这意味着如果没有指定其他 url-pattern 来处理请求的 HTTP 路径,则提供静态文件。

这是建议:

  • 不要重叠您的网址模式。
  • 为每个使用单独的路径。(以后你会感谢自己)
  • 不要让 REST 为静态文件提供服务(这是非常低效的,充其量也是一种黑客行为)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何创建嵌入式WebSocket服务器Jetty 9?

嵌入式Jetty服务器

Jetty BadMessage嵌入式WebSocket Servlet

嵌入式Jetty服务器-没有对/的JSP支持,找不到org.apache.jasper.servlet.JspServlet

使业务域对象可用于嵌入式Jetty服务器中的Jersey Servlet上下文

无法启动嵌入式Jetty服务器

启动嵌入式Jetty服务器的最短代码

Jetty嵌入式服务器和Spring Security集成

在Docker上使用嵌入式Jetty服务器运行Java应用程序

在 Ktor 中使用 Jetty 嵌入式服务器获取客户端证书

会话上的Jetty 9 WebSocket服务器最大消息大小

使用嵌入式Jetty测试Spring-Rest服务

尝试通过嵌入式Jetty服务器运行Ktor应用时如何避免java.lang.ExceptionInInitializerError?

使用`System.exit()`停止具有嵌入式Jetty服务器的Java应用程序是否安全?

我将如何在 Openshift 上实现嵌入式 SFTP 服务器

Okhttp android Websocket和Jetty服务器与SSL的连接

Azure云服务嵌入式FTP服务器

在嵌入式设备上安装SSH服务器

使用FastCGI的嵌入式Web服务器

如何关闭Spring Boot嵌入式服务器

Micronaut嵌入式服务器与本地主机

以编程方式配置嵌入式Underwow服务器

嵌入式码头服务器发生爆炸

在大型企业中运行Spring Boot Microservices是否需要嵌入式Tomcat服务器的许可证?

嵌入式与非嵌入式Java服务器

如何找到嵌入式Redis端口并杀死嵌入式Redis服务器

我可以在WSO2身份服务器中为嵌入式LDAP启用SSL端口吗?

具有嵌入式Jetty的异步Servlet

嵌入式Jetty找不到带注释的Servlet