tomcat8.5支持jdk1.8吗_tomcat jdk版本

tomcat8.5支持jdk1.8吗_tomcat jdk版本最近接收到任务要让公司的框架支持 Http2 协议 主要是 RPC 之间走 Http2 通过查找官网以及上网找资料和咨询大神的帮助 终于找到以下两种方式 蠢人不多话 直接上代码 网上大多数都是抄来抄去的 所以希望本文能帮助到大家 共同学习吖 springboot2 1 4 tomcat9 java 8 这个方法是我从外网查找到的 但是缺点就是需要额外的再开一个端口来接收 h2c 的请求

最近接收到任务要让公司的框架支持Http2协议,主要是RPC之间走Http2。通过查找官网以及上网找资料和咨询大神的帮助,终于找到以下两种方式,蠢人不多话,直接上代码。网上大多数都是抄来抄去的,所以希望本文能帮助到大家,共同学习吖
springboot2.1.4 + tomcat9 +java 8
这个方法是我从外网查找到的,但是缺点就是需要额外的再开一个端口来接收h2c的请求
有兴趣想看原文的可以点击以下的网址进行查看 ,简书也有对这篇文章有翻译过
点击这里可看原文

@Configuration
public class Http2cServletContainer {

@Bean
public ServletWebServerFactory servletContainer() {

TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
tomcat.addAdditionalTomcatConnectors(createH2cConnector());
tomcat.addConnectorCustomizers();
return tomcat;
}
private Connector createH2cConnector() {

Connector connector = new Connector();
Http2Protocol upgradeProtocol = new Http2Protocol();
connector.addUpgradeProtocol(upgradeProtocol);
connector.setPort(8089);
return connector;
}
}

最近看看了最新的springboot的稳定版2.2.2 发现可以使用新的方式来升级,请看代码,这种方式就不需要开通另外一个端口来进行接收,但是得升级版本
springboot官方文档

@Component
public class H2cServletTomcatContainer implements WebServerFactoryCustomizer {

@Override
public void customize(TomcatServletWebServerFactory factory) {

TomcatProtocolHandlerCustomizer handler = s -> s.addUpgradeProtocol(new Http2Protocol());
factory.addProtocolHandlerCustomizers(handler);
}
}

容器启动后,看看有没有出现这个,出现了就ok了

接下来是关于jetty的支持,这个是通过问大佬的
需要剔除springboot 内置的tomcat,使用jetty容器,也要引入jetty的server包需要自己去查一下对应的版本信息

 
org.springframework
spring-web


org.springframework.boot
spring-boot-starter-tomcat




org.springframework.boot
spring-boot-starter-jetty


org.eclipse.jetty.http2
http2-server

9.4.24.v20191120

/dependency>

br /> public class JettyH2cConfiguration {

br />

br /> private final JettyServerCustomizer serverCustomizer = server -> {

br />

br /> for (Connector connector : server.getConnectors()) {

br />

br /> if (connector instanceof ServerConnector) {

br />

br /> final ServerConnector serverConnector = (ServerConnector)connector;

br /> final HTTP2CServerConnectionFactory serverConnectionFactory =

br /> new HTTP2CServerConnectionFactory(new HttpConfiguration());

br /> serverConnector.addConnectionFactory(serverConnectionFactory);

br /> }

br /> }

br /> };

br /> /** * for spring-webflux */

br /> @Bean

br /> public JettyReactiveWebServerFactory jettyReactiveWebServerFactory() {

br />

br /> final JettyReactiveWebServerFactory serverFactory = new JettyReactiveWebServerFactory();

br /> serverFactory.addServerCustomizers(serverCustomizer);

br /> return serverFactory;

br /> }

br /> /** * for spring-mvc */

br /> @Bean

br /> public JettyServletWebServerFactory jettyServletWebServerFactory() {

br />

br /> final JettyServletWebServerFactory serverFactory = new JettyServletWebServerFactory();

br /> serverFactory.addServerCustomizers(serverCustomizer);

br /> return serverFactory;

br /> }

看jetty启动后的输出

基本配置完应该就没有问题了,很多东西都可以在官网上看到的,多看官网,多问大佬,成就人生哈哈哈

编程小号
上一篇 2025-01-16 20:40
下一篇 2025-01-16 20:30

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/hz/148858.html