简体   繁体   English

更改 Jetty 默认端口

[英]Change Jetty default port

Jetty default port is 8080, but I want to change to default port to some other port (9999). Jetty 默认端口是 8080,但我想将默认端口更改为其他端口 (9999)。

I read a few tutorials and they said almost all of configuration information is by default maintained in file jetty.xml , this file is located under $JETTY_HOME/etc/ .我看了一些教程,他们说几乎所有的配置信息都默认保存在文件jetty.xml中,这个文件位于$JETTY_HOME/etc/下。 Then, change property jetty.port to 9999. However, when I opened up that file, I couldn't find jetty.port property inside the jetty.xml .然后,将属性jetty.port更改为 9999。但是,当我打开该文件时,我在jetty.xml中找不到 jetty.port 属性。 I'm currently using Jetty-9.2.1 and the port is at 8080.我目前使用的是 Jetty-9.2.1,端口是 8080。

I found jetty.port property under jetty-http.xml file.我在 jetty-http.xml 文件下找到了 jetty.port 属性。 Even though I changed the port to 8090 in the jetty-http.xml file, jetty is still running at port 8080.即使我在 jetty-http.xml 文件中将端口更改为 8090,jetty 仍在 8080 端口运行。

jetty.xml码头.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">

<!-- =============================================================== -->
<!-- Documentation of this file format can be found at:              -->
<!-- http://wiki.eclipse.org/Jetty/Reference/jetty.xml_syntax        -->
<!--                                                                 -->
<!-- Additional configuration files are available in $JETTY_HOME/etc -->
<!-- and can be mixed in. See start.ini file for the default         -->
<!-- configuration files.                                            -->
<!--                                                                 -->
<!-- For a description of the configuration mechanism, see the       -->
<!-- output of:                                                      -->
<!--   java -jar start.jar -?                                        -->
<!-- =============================================================== -->

<!-- =============================================================== -->
<!-- Configure a Jetty Server instance with an ID "Server"           -->
<!-- Other configuration files may also configure the "Server"       -->
<!-- ID, in which case they are adding configuration to the same     -->
<!-- instance.  If other configuration have a different ID, they     -->
<!-- will create and configure another instance of Jetty.            -->
<!-- Consult the javadoc of o.e.j.server.Server for all              -->
<!-- configuration that may be set here.                             -->
<!-- =============================================================== -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">

    <!-- =========================================================== -->
    <!-- Configure the Server Thread Pool.                           -->
    <!-- The server holds a common thread pool which is used by      -->
    <!-- default as the executor used by all connectors and servlet  -->
    <!-- dispatches.                                                 -->
    <!--                                                             -->
    <!-- Configuring a fixed thread pool is vital to controlling the -->
    <!-- maximal memory footprint of the server and is a key tuning  -->
    <!-- parameter for tuning.  In an application that rarely blocks -->
    <!-- then maximal threads may be close to the number of 5*CPUs.  -->
    <!-- In an application that frequently blocks, then maximal      -->
    <!-- threads should be set as high as possible given the memory  -->
    <!-- available.                                                  -->
    <!--                                                             -->
    <!-- Consult the javadoc of o.e.j.util.thread.QueuedThreadPool   -->
    <!-- for all configuration that may be set here.                 -->
    <!-- =========================================================== -->
    <!-- uncomment to change type of threadpool
    <Arg name="threadpool"><New id="threadpool" class="org.eclipse.jetty.util.thread.QueuedThreadPool"/></Arg>
    -->
    <Get name="ThreadPool">
      <Set name="minThreads" type="int"><Property name="threads.min" default="10"/></Set>
      <Set name="maxThreads" type="int"><Property name="threads.max" default="200"/></Set>
      <Set name="idleTimeout" type="int"><Property name="threads.timeout" default="60000"/></Set>
      <Set name="detailedDump">false</Set>
    </Get>

    <!-- =========================================================== -->
    <!-- Add shared Scheduler instance                               -->
    <!-- =========================================================== -->
    <Call name="addBean">
      <Arg>
        <New class="org.eclipse.jetty.util.thread.ScheduledExecutorScheduler"/>
      </Arg>
    </Call>

    <!-- =========================================================== -->
    <!-- Http Configuration.                                         -->
    <!-- This is a common configuration instance used by all         -->
    <!-- connectors that can carry HTTP semantics (HTTP, HTTPS, SPDY)-->
    <!-- It configures the non wire protocol aspects of the HTTP     -->
    <!-- semantic.                                                   -->
    <!--                                                             -->
    <!-- This configuration is only defined here and is used by      -->
    <!-- reference from the jetty-http.xml, jetty-https.xml and      -->
    <!-- jetty-spdy.xml configuration files which instantiate the    -->
    <!-- connectors.                                                 -->
    <!--                                                             -->
    <!-- Consult the javadoc of o.e.j.server.HttpConfiguration       -->
    <!-- for all configuration that may be set here.                 -->
    <!-- =========================================================== -->
    <New id="httpConfig" class="org.eclipse.jetty.server.HttpConfiguration">
      <Set name="secureScheme">https</Set>
      <Set name="securePort"><Property name="jetty.secure.port" default="8443" /></Set>
      <Set name="outputBufferSize"><Property name="jetty.output.buffer.size" default="32768" /></Set>
      <Set name="requestHeaderSize"><Property name="jetty.request.header.size" default="8192" /></Set>
      <Set name="responseHeaderSize"><Property name="jetty.response.header.size" default="8192" /></Set>
      <Set name="sendServerVersion"><Property name="jetty.send.server.version" default="true" /></Set>
      <Set name="sendDateHeader"><Property name="jetty.send.date.header" default="false" /></Set>
      <Set name="headerCacheSize">512</Set>
      <!-- Uncomment to enable handling of X-Forwarded- style headers
      <Call name="addCustomizer">
        <Arg><New class="org.eclipse.jetty.server.ForwardedRequestCustomizer"/></Arg>
      </Call>
      -->
    </New>


    <!-- =========================================================== -->
    <!-- Set the default handler structure for the Server            -->
    <!-- A handler collection is used to pass received requests to   -->
    <!-- both the ContextHandlerCollection, which selects the next   -->
    <!-- handler by context path and virtual host, and the           -->
    <!-- DefaultHandler, which handles any requests not handled by   -->
    <!-- the context handlers.                                       -->
    <!-- Other handlers may be added to the "Handlers" collection,   -->
    <!-- for example the jetty-requestlog.xml file adds the          -->
    <!-- RequestLogHandler after the default handler                 -->
    <!-- =========================================================== -->
    <Set name="handler">
      <New id="Handlers" class="org.eclipse.jetty.server.handler.HandlerCollection">
        <Set name="handlers">
         <Array type="org.eclipse.jetty.server.Handler">
           <Item>
             <New id="Contexts" class="org.eclipse.jetty.server.handler.ContextHandlerCollection"/>
           </Item>
           <Item>
             <New id="DefaultHandler" class="org.eclipse.jetty.server.handler.DefaultHandler"/>
           </Item>
         </Array>
        </Set>
      </New>
    </Set>

    <!-- =========================================================== -->
    <!-- extra server options                                        -->
    <!-- =========================================================== -->
    <Set name="stopAtShutdown">true</Set>
    <Set name="stopTimeout">5000</Set>
    <Set name="dumpAfterStart"><Property name="jetty.dump.start" default="false"/></Set>
    <Set name="dumpBeforeStop"><Property name="jetty.dump.stop" default="false"/></Set>

</Configure>

jetty-http.xml码头-http.xml

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_0.dtd">

<!-- ============================================================= -->
<!-- Configure the Jetty Server instance with an ID "Server"       -->
<!-- by adding a HTTP connector.                                   -->
<!-- This configuration must be used in conjunction with jetty.xml -->
<!-- ============================================================= -->
<Configure id="Server" class="org.eclipse.jetty.server.Server">

  <!-- =========================================================== -->
  <!-- Add a HTTP Connector.                                       -->
  <!-- Configure an o.e.j.server.ServerConnector with a single     -->
  <!-- HttpConnectionFactory instance using the common httpConfig  -->
  <!-- instance defined in jetty.xml                               -->
  <!--                                                             -->
  <!-- Consult the javadoc of o.e.j.server.ServerConnector and     -->
  <!-- o.e.j.server.HttpConnectionFactory for all configuration    -->
  <!-- that may be set here.                                       -->
  <!-- =========================================================== -->
  <Call name="addConnector">
    <Arg>
      <New class="org.eclipse.jetty.server.ServerConnector">
        <Arg name="server"><Ref refid="Server" /></Arg>
        <Arg name="factories">
          <Array type="org.eclipse.jetty.server.ConnectionFactory">
            <Item>
              <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                <Arg name="config"><Ref refid="httpConfig" /></Arg>
              </New>
            </Item>
          </Array>
        </Arg>
        <Set name="host"><Property name="jetty.host" /></Set>
        <Set name="port"><Property name="jetty.port" default="8090" /></Set>
        <Set name="idleTimeout"><Property name="http.timeout" default="30000"/></Set>
        <Set name="soLingerTime"><Property name="http.soLingerTime" default="-1"/></Set>
      </New>
    </Arg>
  </Call>

</Configure>

I was also advised to use an integration test to configure Jetty to use other port.我还被建议使用集成测试来配置 Jetty 以使用其他端口。 There's a integration-tests.properties file inside the project.项目中有一个integration-tests.properties文件。 Maybe a solution is to set jetty.port to 9999 inside this file?也许解决方案是在此文件中将 jetty.port 设置为 9999?

integration-tests.properties:集成测试.properties:

host = localhost
port = 9999

如果在从命令行启动它时设置端口,它是否有效,如下所示:

java -jar start.jar -Djetty.port=9999

I did this in Jetty 9.x version.我在 Jetty 9.x 版本中做到了这一点。 You need to go to $JETTY_HOME/start.ini file and edit this setting jetty.port .您需要转到$JETTY_HOME/start.ini文件并编辑此设置jetty.port

Lets say that you want to run jetty at 9090 port: Please change jetty.port setting in $JETTY_HOME/start.ini from假设您想在 9090 端口运行 jetty:请从$JETTY_HOME/start.ini更改jetty.port设置

jetty.port=8080

to

 jetty.port=9090

Then start jetty using java -jar start.jar option.然后使用java -jar start.jar选项启动 jetty。 Then jetty will be running at 9090 port than default 8080 port.然后 jetty 将在 9090 端口而不是默认 8080 端口上运行。 Then do curl -i -XGET "http://localhost:9090" .然后做curl -i -XGET "http://localhost:9090" That should give you 200 http status.那应该给你 200 http 状态。

Thats it.就是这样。

Update:更新:

On Jetty 9.x, jetty.port has been deprecated and you can use jetty.http.port instead, as shown below:在 Jetty 9.x 上, jetty.port已被弃用,您可以使用jetty.http.port代替,如下所示:

$> cd $JETTY_HOME && java -jar start.jar -Djetty.http.port=8080

On jetty 9.2.3.v20140905 it`s need to write in /etc/default/jetty在jetty 9.2.3.v20140905 上需要写在/etc/default/jetty

# JETTY_ARGS
#   The default arguments to pass to jetty.
#   For example
JETTY_ARGS="jetty.port=8080 jetty.spdy.port=8443 jetty.secure.port=443"

but this change only http port.但这只是改变了 http 端口。 To change https port in jetty 9.2 create ini file $JETTY_HOME/start.d/https.ini要更改 jetty 9.2 中的 https 端口,请创建 ini 文件$JETTY_HOME/start.d/https.ini

# Initialize module https
#
--module=https
## HTTPS Configuration
# HTTP port to listen on
https.port=8443
# HTTPS idle timeout in milliseconds
https.timeout=30000
# HTTPS Socket.soLingerTime in seconds. (-1 to disable)
# https.soLingerTime=-1

jetty 9.3 in /etc/default/jetty /etc/default/jetty jetty 9.3

# JETTY_ARGS
# The default arguments to pass to jetty.
# For example
JETTY_ARGS="jetty.http.port=8080 jetty.ssl.port=443"

or command line parameters -Djetty.http.port=8080 -Djetty.ssl.port=443或者命令行参数-Djetty.http.port=8080 -Djetty.ssl.port=443

我成功地改变了端口,你可以尝试编辑jetty.port位于文件$Jetty_home/start.d/http.ini

You need to change the http port in the start.ini file because it will over-right jetty-http.xml config.Or just comment the line in start.ini and keep your config from jetty-http.xml.您需要更改 start.ini 文件中的 http 端口,因为它会覆盖 jetty-http.xml 配置。或者只是在 start.ini 中注释该行并保留 jetty-http.xml 中的配置。 In [jetty home]/start.ini在 [jetty home]/start.ini

## HTTP port to listen on
#jetty.port=8080

只是为了在码头 7 上的完整性,你可以使用这个:

java -jar start.jar --module=http jetty.port=9080

If you are using eclipse you need to set the run configurations.如果您使用的是eclipse ,则需要设置运行配置。 When you install jetty in eclipse, the default port for jetty is 8080 .在 eclipse 中安装jetty时, jetty的默认端口是8080

So you need to change it into an XML file.所以你需要把它改成一个XML文件。 If the problem remains, you need to change it in eclipse run configurations.如果问题仍然存在,则需要在 eclipse 运行配置中进行更改。

I hope it works, as it worked for me.我希望它有效,因为它对我有效。

For IntelliJ, this can be done similar to Magnus Lassi's command-line answer.对于 IntelliJ,这可以类似于 Magnus Lassi 的命令行答案来完成。

Run --> Edit Configurations --> Add "-Djetty.port=XXXX", eg:运行 --> 编辑配置 --> 添加“-Djetty.port=XXXX”,例如:

jetty:run-war -Djetty.port=9999

For SSL port you can pass the param:对于 SSL 端口,您可以传递参数:

-Dssl.port=8445

It worked for me.它对我有用。

for a spring boot application, inside your application.properties file 
add server.port = preferred port number eg. 8082
[IMAGE OF PORT CONFIGURATION][1]
[1]: https://i.stack.imgur.com/jMiyM.jpg

I changed the jetty.http.port property in jetty/start.ini and it worked for me!我更改了jetty/start.ini中的jetty.http.port属性,它对我有用!

For changing SSL port, you need to change jetty.ssl.port property in below directory:要更改SSL端口,您需要更改以下目录中的jetty.ssl.port属性:

  • $JETTY_HOME/etc
    • jetty-ssl.xml
<Configure id="Server" class="org.eclipse.jetty.server.Server">
...
  <Call  name="addConnector">
    <Arg>
      <New id="sslConnector" class="org.eclipse.jetty.server.ServerConnector">
      ...
        <Set name="port"><Property name="jetty.ssl.port" deprecated="ssl.port" default="8443" /></Set>
      ...
      </New>
    </Arg>
  </Call>
...
</Configure>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM