Hi,
I setup a jetty-alpn.xml, and set the default protocol for
ALPNServerConnectionFactory.
Now, it works.

Thanks!

2016-03-31 17:01 GMT+08:00 Simone Bordet <[email protected]>:

> Hi,
>
> On Thu, Mar 31, 2016 at 10:44 AM, John Jiang <[email protected]>
> wrote:
> > Hi,
> > Sorry for the late reply.
> >
> > Please allow me to describe more clearly.
> >
> > 1. When my Jetty 9.3.5 server started, the below logs were shown,
> > 2016-03-31 15:55:07.476:INFO:oejs.ServerConnector:main: Started
> > ServerConnector@10d59286{HTTP/1.1,[http/1.1, h2c, h2c-17, h2c-16,
> h2c-15,
> > h2c-14]}{0.0.0.0:8080}
>
> This connector speaks HTTP/1.1 and will be able to speak HTTP/2
> clear-text (h2c) when an upgrade is performed.
>
> > 2016-03-31 15:55:08.699:INFO:oejus.SslContextFactory:main:
> > x509=X509@5123a213(1,h=[sc11136070.us.oracle.com],w=[]) for
> > SslContextFactory@52525845(...)
> > 2016-03-31 15:55:12.725:INFO:oejs.ServerConnector:main: Started
> > ServerConnector@4be242d9{SSL,[ssl, alpn, h2, h2-17, h2-16, h2-15, h2-14,
> > http/1.1]}{0.0.0.0:8081}
>
> This connector speaks SSL, it is configured with ALPN, so will be able
> to speak HTTP/2 and HTTP/1.1 based on the ALPN protocol negotiated.
>
> > 2016-03-31 15:55:12.726:INFO:oejs.Server:main: Started @23362ms
> >
> > I think it means that the server supports HTTP/2 with/without TLS. Right?
>
> Correct.
>
> > 2. I used the following test codes,
> > public void testHttp() throws Exception, InterruptedException,
> >         ExecutionException, TimeoutException {
> >     String url = "https://localhost:8081";;
> >     HttpClient client = new HttpClient(sslContextFactory); // This SSL
> setup
> > has no problem.
>
> You are using the HTTP/1.1 transport here, so no HTTP/2 from the client.
>
> >     client.start();
> >     HttpRequest request = (HttpRequest) client.newRequest(url);
> >     System.out.println(request);
> >     ContentResponse response = request.send();
> >     System.out.println(response.getStatus());
> >     client.stop();
> > }
> >
> > And I got the below output:
> > 2016-03-31 16:31:55.450:INFO::main: Logging initialized @522ms
> > HttpRequest[GET  HTTP/1.1]@64bfbc86
> > 2016-03-31 16:31:57.556:WARN:oejh.HttpParser:HttpClient@32374789-14:
> Illegal
> > character 0x0 in state=START for buffer
> > DirectByteBuffer@5684296a
> [p=1,l=32,c=16384,r=31]={\x00<<<\x00\x17\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01invalid_preface>>>\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00...\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00}
>
> So, the client sent a HTTP/1.1 request, and the server replied with a
> HTTP/2 GOAWAY frame saying "invalid_preface".
>
> You are not using ALPN on the client, so this tells me that you have
> chosen HTTP/2 to be the default protocol on the server.
>
> What you want to do is to tell the ALPN ConnectionFactory what is the
> default protocol. In your case it should be "http/1.1".
> See ALPNServerConnectionFactory.setDefaultProtocol(String).
>
> --
> Simone Bordet
> ----
> http://cometd.org
> http://webtide.com
> Developer advice, training, services and support
> from the Jetty & CometD experts.
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to