Jetty 9忽略我的配置XML

Jetty 9忽略我的配置XML,jetty,embedded-jetty,Jetty,Embedded Jetty,我在一个项目中使用Jetty Runner,最近升级到Jetty 9。使用新配置迁移XML后,我注意到启动日志中有以下行: WARN:oejx.XmlConfiguration:main: Ignored arg: ... 正在打印的arg几乎就是我的整个XML,即: <?xml version="1.0"?> <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/j

我在一个项目中使用Jetty Runner,最近升级到Jetty 9。使用新配置迁移XML后,我注意到启动日志中有以下行:

WARN:oejx.XmlConfiguration:main: Ignored arg: ...
正在打印的arg几乎就是我的整个XML,即:

<?xml version="1.0"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"     
"http://www.eclipse.org/jetty/configure.dtd">
<Configure id="Server" class="org.eclipse.jetty.server.Server">
  <Arg name="threadpool">
    <New class="org.eclipse.jetty.util.thread.QueuedThreadPool">
      <Arg name="maxThreads">200</Arg>
      <Arg name="minThreads">50</Arg>
      <Arg name="idleTimeout">1000</Arg>
      <Arg name="queue">
        <New class="java.util.concurrent.ArrayBlockingQueue">
          <Arg type="int">6000</Arg>
        </New>
      </Arg>
      <Set name="detailedDump">false</Set>
    </New>
  </Arg>
</Configure>

200
50
1000
6000
假的
我已经用当前的Jetty Javadocs检查了每个arg name/type/setter,但仍然无法理解这个设置有什么问题,需要忽略

您能帮忙吗?

更新日期:2018年2月
忽略参数:
表示您有一个
,相同):


...
10
200
60000
假的
如果您想从
QueuedThreadPool
更改为其他内容,这被认为是一个极端的专家级选项。您必须意识到这将对服务器产生的影响

更改最小/最大螺纹时,请注意以下事项:

  • 您拥有的CPU核心数。(这会影响所需的最小螺纹)
  • 您拥有的网络接口数。(这会影响所需的最小螺纹)
  • 您将同时拥有的连接数。(这会影响所需的最小螺纹)
  • 您将同时收到的请求数。(这会影响所需的最小螺纹)
  • HTTP/2的使用将显著增加线程需求
  • 使用老式的Servlet阻塞API将增加线程需求。(考虑使用较新的AsyncContext和异步I/O行为,它将显著降低线程需求)
一些最小线程示例:

以下示例仅供说明,并不代表码头项目的“推荐”值集。 Jetty建议值是Jetty中已存在的默认值

在Intel i7上,具有1个网络接口,服务于一个普通网页,并具有资源(图像、css、javascript等)。您需要(8个cpu内核、1个网络接口、1个接收器、1个选择器,以及大约10个以上的线程来为典型的现代Chrome浏览器提供网页及其资源)至少22个线程

在具有1个网络接口的Raspberry Pi上,按顺序(从不并行)向单个REST客户机提供REST请求,您至少需要8个线程

更多注意事项:

另外,不要假设1个线程==1个请求/响应交换。在码头上不是这样的。单个请求/响应交换可以由[1…n]个线程在其生存期内处理。只有使用老式ServletAPI阻止读/写操作才能保存线程(同样,使用新的ServletAPI异步I/O操作)

如果你想在线程/线程上的某个假设下调整线程配置,考虑使用<代码> QoSp滤镜< /COD>(用于控制端点/资源特定行为)或<代码> DoSFilter < /代码>(用于控制总体负载限制)。 旧答案(自2013年12月起) 1)修复您的DTD

你的:

<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"     
"http://www.eclipse.org/jetty/configure.dtd">

上述内容已通过jetty-9.1.0.v20131115分发验证。

Ops!谢谢修复,但消息仍然存在。请在问题中包含完整的错误/警告消息,不要对其进行修剪或缩写。完整的Jetty IoC XML内容可能也是解决问题所必需的。至于完整的错误/警告消息,下面是:2013-12-09 13:18:29.320:WARN:oejx.XmlConfiguration:main:Ignored arg:| 200501000 | 6000 | false |检查Jetty的源代码时,我注意到消息来自与已创建的对象一起使用的“arg”标记(似乎是这样,因为我已经有了一台服务器)。也许这意味着我只能用“newserver(…)”在Java代码中设置线程池?不幸的是,目前建议的XML也不起作用。
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" 
"http://www.eclipse.org/jetty/configure_9_0.dtd">