java 集成grizzly_使用Grizzly的嵌入式Java服务器:如何启用http2

所以我试图使用Grizzly / Jersey创建一个REST API服务器,它工作正常,但我无法弄清楚如何启用http2。关于这个问题的文件几乎都不存在。这是我拥有的:

private static SSLContext getSSLContext(final String keystore) throws Exception {

SSLContext sslContext = SSLContext.getInstance("TLSv1");

final char[] passphrase = "changeit".toCharArray();

final KeyManagerFactory kmf = KeyManagerFactory.getInstance("SunX509");

final KeyStore ks = KeyStore.getInstance("JKS");

try (InputStream stream = Main.class.getResourceAsStream(keystore)) {

ks.load(stream, passphrase);

}

kmf.init(ks, passphrase);

sslContext.init(kmf.getKeyManagers(), null, null);

return sslContext;

}

final ResourceConfig rc = new ResourceConfig().packages("path.to.package");

final HttpServer server = GrizzlyHttpServerFactory.createHttpServer(uri, rc, false);

final NetworkListener listener = server.getListeners().iterator().next();

listener.registerAddOn(new Http2AddOn());

listener.setSecure(true);

final SSLEngineConfigurator configurator =

new SSLEngineConfigurator(

getSSLContext("keystore.jks"),

false,

false,

false

);

listener.setSSLEngineConfig(configurator);而且,据我所知,我在我的pom.xml文件中拥有所有适当的依赖关系:

org.glassfish.grizzly

grizzly-http2

2.3.24

org.glassfish.grizzly

grizzly-npn-bootstrap

1.2

org.glassfish.grizzly

grizzly-npn-api

1.2

org.glassfish.jersey.containers

jersey-container-grizzly2-http

当我用curl -v --http2 ...测试服务器时,我得到了

...

ALPN / NPN,服务器不同意协议

使用TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256的SSL连接

...

有人知道缺少什么吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值