如何使用 wildfly 为 javax websockets 设置自定义路径

How to set custom path for javax websockets using wildfly

我想知道是否可以设置链接到@ServerEndpoint 注释的自定义 URI 路径和端口号。

目前wildfly服务器启动后可以在以下路径打开websocket

ws://localhost:8080/test-1.0-SNAPSHOT/wstest

其中 test-1.0-SNAPSHOT 似乎是 POM 中指定的 artifactID 和版本。

我希望打开它的是

ws://localhost:8025/custom-path/wstest

感谢您的帮助

我不会过多谈论暗示在你的 wildfly 服务器前面设置反向代理以便做任何你想做的解决方案(监听多个端口,将一个 URL 映射到另一个。 ..)

Wilfly 部署应用程序(通常 war,但可以 war inside ear)。那些 war 部署在上下文中(在您的示例中为 /test-1.0-SNAPSHOT)。此上下文通常是您使用的 war 文件的名称(或者如果您使用 ear,则在 ear 文件的 application.xml 中定义的名称)。
您可以通过在 war 文件中添加 WEB-INF/jboss-web.xml 文件来更新它。内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-web xmlns="http://www.jboss.com/xml/ns/javaee">
   <context-root>/myContext</context-root>
</jboss-web>

对于端口,和每台服务器一样,随意监听一个端口(默认8080)。在管理控制台上,可以找到,修改(或添加其他监听器)。

但是即使你设置了多个监听器,你也无法在一个实例上在一个端口上监听 WS,在另一个端口上监听 HTTP。两个端口都会做所有事情。

并且一个应用程序只能部署在一个上下文中。如果您不需要上下文,您可以部署在根上下文 ("/") 上,但如果您在同一实例上部署其他应用程序,它会变得棘手。