Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jetty maven插件多个独立端口_Java_Maven_Jetty_Maven Jetty Plugin - Fatal编程技术网

Java jetty maven插件多个独立端口

Java jetty maven插件多个独立端口,java,maven,jetty,maven-jetty-plugin,Java,Maven,Jetty,Maven Jetty Plugin,我使用jetty maven插件进行本地开发测试。我想要的是从一个jetty:run命令开始,在pom.xml中指定的不同端口上启动一堆jetty容器——我不想在war中指定它。我当前的插件配置块如下所示: <configuration> <scanIntervalSeconds>0</scanIntervalSeconds> <contextHandlers> <contextHandler implementati

我使用jetty maven插件进行本地开发测试。我想要的是从一个jetty:run命令开始,在pom.xml中指定的不同端口上启动一堆jetty容器——我不想在war中指定它。我当前的插件配置块如下所示:

<configuration>
   <scanIntervalSeconds>0</scanIntervalSeconds>
   <contextHandlers>
      <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
         <war>${basedir}/service-a/target/a.war</war>
         <contextPath>/a</contextPath>
         <allowNullPathInfo>true</allowNullPathInfo>
      </contextHandler>
      <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
         <war>${basedir}/service-b/target/b.war</war>
         <contextPath>/b</contextPath>
         <allowNullPathInfo>true</allowNullPathInfo>
      </contextHandler>
   </contextHandlers>
</configuration>

0
${basedir}/service-a/target/a.war
/a
真的
${basedir}/service-b/target/b.war
/b
真的

我知道我可以指定-Djetty.port,但这会全局设置端口。上面的示例在端口8080上运行的同一jetty容器实例中启动两个WAR。是否有人知道contextHandler中的一个开关可以设置端口,或者如果我有整个插件块的多个实例,如何设置端口?我搜索的每个示例都只能在war中的jetty.xml文件中进行设置,我不想这样做。

在jetty maven插件中,您可以创建多个可在不同端口上运行的连接器。这是第一次开始

我不确定这些
connector
块如何或是否可以运行不同的战争。它们可以引用不同的jetty.xml(尽管我在使用jetty.xml时遇到了麻烦)


如果您命名连接器和上下文处理程序,这是可能的

<configuration>
    <connectors>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>8080</port>
            <name>instance_8080</name>
        </connector>
        <connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
            <port>8081</port>
            <name>instance_8081</name>
        </connector>
    </connectors>
    <contextHandlers>           
        <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
            <war>${basedir}/service-a/target/a.war</war>
            <contextPath>/a</contextPath>
            <connectorNames>
                <item>instance_8080</item>
            </connectorNames>
        </contextHandler>
        <contextHandler implementation="org.eclipse.jetty.webapp.WebAppContext">
            <war>${basedir}/service-b/target/b.war</war>
            <contextPath>/b</contextPath>
            <connectorNames>
                <item>instance_8081</item>
            </connectorNames>
        </contextHandler>
    </contextHandlers> 
</configuration>

8080
实例(u 8080)
8081
实例_8081
${basedir}/service-a/target/a.war
/a
实例(u 8080)
${basedir}/service-b/target/b.war
/b
实例_8081

注意,此配置用于
org.mortbay.jetty:jetty maven插件

如果您在主mvn模块下创建了多个mvn模块,这两个模块都接收到jetty:run,但配置不同,会发生什么?(虽然这通常会占用控制台,但不会占用控制台)从链接的文档::“请注意,由于jetty-9.0已无法在pom.xml中直接配置https连接器:您需要使用jetty xml配置文件来完成此操作。”文档中暗示的唯一替代方法是使用org.eclipse.jetty.webapp.WebAppContext(如上所述)从这里看,您似乎无法从pom.xmloh配置端口,怎么样。我一直在使用8。这看起来不错,但不幸的是,我无法再验证它是否有效。我会给它几天,看看是否有人验证,但在那之后,我会假设这是正确的,并标记为这样。