问题
I'm using maven-jetty-plugin and trying to override my jetty.xml setting with the -Djetty.port=8090 but it's not working. Only when I remove the connector part from the jetty.xml file I get the port to be 8090.
So:
mvn jetty:run -Djetty.port=8090
With the connector starts in port 8080
Without the connector starts in port 8090
Problem is I need to configure acceptors, stats and other stuff. I tried removing only the port from the connector but it didn't work.
I'm using:
JAVA 1.7_05
MAVEN 3.0.4
Jetty 8.1.4
Linux Ubuntu 12.04 64bits
Here's my pom.xml plugin configuration:
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.4.v20120524</version>
<configuration>
<stopKey>foo</stopKey>
<stopPort>9990</stopPort>
<jettyXml>src/main/webapp/WEB-INF/jetty.xml</jettyXml>
</configuration>
<executions>
<execution>
<id>start-jetty</id>
<!-- <phase>pre-integration-test</phase> -->
<goals>
<goal>run</goal>
</goals>
<configuration>
<scanIntervalSeconds>0</scanIntervalSeconds>
</configuration>
</execution>
<execution>
<id>stop-jetty</id>
<!-- <phase>post-integration-test</phase> -->
<goals>
<goal>stop</goal>
</goals>
</execution>
</executions>
</plugin>
Jetty.xml connector conf:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><Property name="jetty.host" /></Set>
<Set name="port"><Property name="jetty.port" default="8080"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">4</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
Thanks in advance!
UPDATE 1: Also tried using SystemProperty instead of Property in the jetty.xml. Did not work
回答1:
UPDATE 1: did work. Don't know why but I tried it with the host also as SystemProperty and it worked. Then I removed host and worked also.
So final fix working jetty.xml connector conf:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="host"><SystemProperty name="jetty.host" /></Set>
<Set name="port"><SystemProperty name="jetty.port" default="8080"/></Set>
<Set name="maxIdleTime">300000</Set>
<Set name="Acceptors">4</Set>
<Set name="statsOn">false</Set>
<Set name="confidentialPort">8443</Set>
<Set name="lowResourcesConnections">20000</Set>
<Set name="lowResourcesMaxIdleTime">5000</Set>
</New>
</Arg>
</Call>
回答2:
I had the same problem. Fix:
In the properties section of the pom, define jetty.port:
<properties>
<jetty.port>8888</jetty.port>
....
</properties>
In the plugin configuration:
<connectors>
<connector implementation="org.eclipse.jetty.server.nio.SelectChannelConnector">
<maxIdleTime>3600000</maxIdleTime>
<port>${jetty.port}</port>
</connector>
This enables to override the port on command line with
mvn -D jetty.port=9999 jetty:run
回答3:
if you are using ./jetty.sh start command to start the server, it read configure from start.ini or start.d in base folder, please try to change port (jetty.port) in that and restart the server.
回答4:
Just remove the SystemProperty markup inside "port", and put the new port value inside "port" markup:
来源:https://stackoverflow.com/questions/11652058/how-to-override-jetty-xml-with-jetty-port