Jetty在不同端口上分离Web应用程序

我需要以下设置。

  • Jetty必须侦听端口80809090
  • 每个端口必须有自己独立的应用程序(即webapp18080上运行, webapp29090上运行)。 web应用程序只能在其指定端口上访问(即webapp2不能在端口8080上可用)。

我已成功为etc / jetty.xml添加了额外的连接器 ,因此它现在使用端口8080和9090.我还添加了额外的处理程序,因此它现在从多个目录(dir1 / webapp1和dir2 / webapp2)中选择webaps。

我的问题是:jetty将每个处理程序找到的所有webapps部署到每个连接器(即每个端口),因此webapp1webapp2都可以在端口80809090上访问。

我需要一种方法来确保handler1 (处理dir1 / webapp1)仅被指定为connector1 (侦听端口8080),并且同样对于connector2仅在端口9090上拾取handler2 (处理dir2 / webapp2)。

有没有办法实现这个?

Jetty文档显示了两种方法。

第一个配置两个单独的服务器实例,并通过在命令行上提供两个配置文件名来启动它们。

第二种方法使用两个连接器的名称,每个应用程序上下文命名它将使用的连接器。

您基本上将在同一JVM中创建两个实例。

创建两个.xml文件,并在每个.xml文件中指定:

... XXXX ...   /webapps/X /webappX ...  ... 

[确保替换相应xml文件中的X值。]

在同一个JVM中使用两个实例启动Jetty,如下所示:

 java -jar start.jar webapp1.xml webapp2.xml 

如果要分离应用程序,为什么不使用两个Jetty安装?