के साथ ठीक लगता है मैं एक एम्बेडेड जेट्टी (9.3.0.v20150612) में एक सर्वलेट लागू कर रहा हूं और मैं HTTP/2 का उपयोग करना चाहता हूं।एम्बेडेड जेट्टी HTTP/2 फ़ायरफ़ॉक्स/क्रोम के साथ काम नहीं कर रहा है लेकिन सफारी
मैं HTTP1.1 या HTTP2 का चयन करने के लिए प्रोटोकॉल वार्ता के लिए एएलपीएन सक्षम कर रहा हूं। जब मैं सफारी 8 (केवल HTTP1.1 का समर्थन करता हूं) या सफारी 9 से अपने सर्वलेट को HTTP अनुरोध भेज रहा हूं (HTTP1.1 & HTTP2 दोनों का समर्थन करें) मुझे अपने सर्वलेट से एक उत्तर मिलता है। जब मैं फ़ायरफ़ॉक्स 39 से एक ही अनुरोध निष्पादित करता हूं, तो यह काम नहीं करता है और मुझे बस NS_ERROR_ABORT मिलता है। मेरे पास क्रोम के साथ एक ही समस्या है।
- मैं क्यों नहीं सफारी 9 के साथ क्रोम & फ़ायरफ़ॉक्स से जवाब मिलता है
- कैसे पता करूं कि पता कर सकते हैं, HTTP/2 के बजाय HTTP1.1 का इस्तेमाल किया गया है:
मैं दो प्रश्न हैं? (मेरे IOS9 अनुप्रयोग भी मुद्दे के बिना कनेक्ट कर रहा है)
नीचे जब मैं सर्वर शुरू कर जेट्टी
private void startHTTP2Server() {
WebServerProperties webProperties = WebServerProperties.getInstance();
HttpConfiguration config = getHttpConfiguration();
HttpConnectionFactory http1 = new HttpConnectionFactory(config);
HTTP2ServerConnectionFactory http2 = new HTTP2ServerConnectionFactory(config);
NegotiatingServerConnectionFactory.checkProtocolNegotiationAvailable();
ALPNServerConnectionFactory alpn = new ALPNServerConnectionFactory();
alpn.setDefaultProtocol(http1.getProtocol()); // sets default protocol to HTTP 1.1
// SSL Connection Factory
SslContextFactory sslContextFactory = new SslContextFactory();
sslContextFactory.setKeyStorePath(webProperties.getKeystore());
sslContextFactory.setKeyStorePassword(webProperties.getKeystorePassword());
//sslContextFactory.setKeyManagerPassword(KEYSTORE_PW);
//sslContextFactory.addExcludeCipherSuites(".*RC4.*");
//sslContextFactory.addExcludeCipherSuites("TLS_DHE_RSA.*");
sslContextFactory.setProtocol(webProperties.getTLSVersion()); // SEB
SslConnectionFactory ssl = new SslConnectionFactory(sslContextFactory, alpn.getProtocol());
Server server = new Server();
//ServerConnector connector = new ServerConnector(server, ssl, alpn, http2, http1);
ServerConnector connector = new ServerConnector(server, ssl, alpn, http2, http1);
connector.setPort(webProperties.getPort());
server.addConnector(connector);
// --- SEB
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath(webProperties.getServletContext());
context.setResourceBase(System.getProperty(webProperties.getServletTmpDir()));
server.setHandler(context);
// Add dump servlet
context.addServlet(IMonServer.class, webProperties.getServletPath());
try {
server.start();
server.join();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private static HttpConfiguration getHttpConfiguration() {
WebServerProperties webProperties = WebServerProperties.getInstance();
HttpConfiguration config = new HttpConfiguration();
config.setSecureScheme("https");
config.setSecurePort(webProperties.getPort());
config.setSendXPoweredBy(true);
config.setSendServerVersion(true);
config.addCustomizer(new SecureRequestCustomizer());
return config;
}
का आरंभीकरण प्रदर्शन करने के लिए कोड है, मैं भी दे जावा विकल्प -Xbootclasspath/पी: $ installDirectory/lib/alpn-boot-8.1.3.v20150130.jar
क्या कुछ गलत या गुम है? आपकी मदद के लिए धन्यवाद,
सादर,
क्या आप कृपया मदद कर सकते हैं: वेबप्रॉपर्टीज? कौन सा आयात/जार? –