我使用带有xml配置的jetty-server和jetty-webapp包但它显示错误: "线程中的例外" main" java.lang.ClassNotFoundException:org.eclipse.jetty.server.nio.SelectChannelConnector"
这个错误来自什么?
如果评论这部分xml配置:
<Call name="addConnector">
<Arg>
<New class="org.eclipse.jetty.server.nio.SelectChannelConnector">
<Set name="port">8080</Set>
<Set name="host">88.147.197.118</Set>
</New>
</Arg>
</Call>
然后web-app启动时没有任何错误。
包的版本是9.4.9.v20180320
答案 0 :(得分:1)
SelectChannelConnector alternative class in Jetty 9 and above
似乎此类不适用于Jetty 9及更高版本。请改用ServerConnector
。
答案 1 :(得分:0)
org.eclipse.jetty.server.nio.SelectChannelConnector
来自Jetty 7.x和8.x时间段。 Long ago deprecated and EOL.。
Jetty 9.x中的连接器基础架构从那时起发生了巨大变化。 主要是由于SPDY和HTTP / 2的压力(以及TLS / 1.2和ALPN)。
它远远超出了在Stackoverflow答案中描述整个新连接器架构的范围。
但是,如果您只是在寻找示例,我建议您下载jetty-home
工件或jetty-distribution
工件,查看/etc/*.xml
文件以获取示例。
看看:
jetty-http.xml
- 用于正常的HTTP连接器设置(仅限HTTP / 1.x)jetty-https.xml
- 适用于普通HTTPS(SSL / TLS)连接器(仅限HTTP / 1.x)jetty-http2.xml
- 对于典型的基于HTTP / 2的连接器,退回到HTTP / 1.1 jetty-ssl.xml
- 有关如何为HTTPS配置SSL层