I only found the
META-INF/services/org.eclipse.jetty.http.HttpFieldPreEncoder file in the
org.eclipse.jetty.http2:http2-hpac:9.4.20.v20190813 jar file and it had
just the one line in it:
org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder

Same thing with version 9.4.21.v20190926.  Should I be getting that file
from somewhere else?

Looking for documentation, I did the following google searches with no
results:
HttpFieldPreEncoder site:https://www.eclipse.org/jetty/documentation/
Http1FieldPreEncoder site:https://www.eclipse.org/jetty/documentation/
HpackFieldPreEncoder site:https://www.eclipse.org/jetty/documentation/

I'm using the Maven Shade plugin.  What would you recommend as a better
tool to make a fat jar?  I tried Gradle too, but went back to Maven
specifically because the Shade plugin had better debugging info than the
Gradle Shadow plugin.  Maybe I just don't know how to work it.

I don't mean to be a pest.  If something is missing, I could try to add it
if you think that would be helpful.  Once my bug-report project is working,
I was thinking of leaving it out there and renaming it to
jetty-http2-example in case it helps others.  The other http2 sample I
found was from 2015 and referenced deprecated and now non-existent classes.

On Fri, Oct 4, 2019 at 8:21 PM Greg Wilkins <[email protected]> wrote:

> A good tool to create a fat jar should merged META-INF service files for
> you.  There are probably a couple of other ones that need to be merged in
> the code base... more so once you go to jetty 10.
>
> cheers
>
>
> On Sat, 5 Oct 2019 at 10:16, Glen Peterson <[email protected]>
> wrote:
>
>> SWEET!  That fixed it.  I just added the line:
>> org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder
>> And it worked!  Hallelujah!
>>
>> Is that something I can configure with code?
>>
>> On Fri, Oct 4, 2019 at 8:12 PM Glen Peterson <[email protected]>
>> wrote:
>>
>>> Yes.  It has a single line:
>>> org.eclipse.jetty.http.Http1FieldPreEncoder
>>>
>>> Should it have 2 lines?  What if I just disallow that file altogether?
>>>
>>> On Fri, Oct 4, 2019 at 8:10 PM Greg Wilkins <[email protected]> wrote:
>>>
>>>>
>>>> Glen,
>>>>
>>>> it is not a matter of if the classes are in the jar or not.  It is a
>>>> matter of if the META-INF/services has been correctly configured to load
>>>> them with the ServiceLoader.
>>>>
>>>> Does your jar have
>>>> a META-INF/services/org.eclipse.jetty.http.HttpFieldPreEncoder  file and if
>>>> so, what is it's contents?
>>>>
>>>>
>>>>
>>>> On Sat, 5 Oct 2019 at 10:05, Glen Peterson <[email protected]>
>>>> wrote:
>>>>
>>>>> I may have been able to really simplify my example.  Here's the entire
>>>>> main method that works when run from class files, and fails when run from
>>>>> the jar:
>>>>>
>>>>> val bb: ByteBuffer = ByteBuffer.allocate(100)
>>>>>
>>>>> PreEncodedHttpField("hello", "world").putTo(bb, HttpVersion.HTTP_1_0)
>>>>> logger.info("hello world http 1.0: " + bb)
>>>>>
>>>>> PreEncodedHttpField("hello", "world").putTo(bb, HttpVersion.HTTP_1_1)
>>>>> logger.info("hello world http 1.1: " + bb)
>>>>>
>>>>> PreEncodedHttpField("hello", "world").putTo(bb, HttpVersion.HTTP_2)
>>>>> logger.info("hello world http 2: " + bb)
>>>>>
>>>>> OUTPUT (from Jar - breaks):
>>>>> hello world http 1.0: java.nio.HeapByteBuffer[pos=14 lim=100 cap=100]
>>>>> hello world http 1.1: java.nio.HeapByteBuffer[pos=28 lim=100 cap=100]
>>>>> Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException:
>>>>> Index 1 out of bounds for length 1
>>>>> at
>>>>> org.eclipse.jetty.http.PreEncodedHttpField.putTo(PreEncodedHttpField.java:118)
>>>>> at org.organicdesign.classVsJar.ClazzVsJarKt.main(ClazzVsJar.kt:84)
>>>>>
>>>>> From classes it ends with:
>>>>> hello world http 2: java.nio.HeapByteBuffer[pos=39 lim=100 cap=100]
>>>>>
>>>>>
>>>>> Greg Wilkins:
>>>>>     logger.info("http1fieldpreEncoderVersion = " +
>>>>> org.eclipse.jetty.http.Http1FieldPreEncoder().httpVersion)
>>>>>     logger.info("http2fieldpreEncoderVersion = " +
>>>>> org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder().httpVersion)
>>>>>
>>>>> Output:
>>>>>   http1fieldpreEncoderVersion = HTTP/1.0
>>>>>   http2fieldpreEncoderVersion = HTTP/2.0
>>>>>
>>>>> So both are in the Jar and successfully loaded by the JVM.  Maybe I'm
>>>>> getting an older version of one of them from another jar?  Presumably
>>>>> another jetty jar?  My IDE doesn't give me a choice for where to import
>>>>> them from, so I don't know where another version could be coming from.
>>>>>
>>>>>
>>>>> On Fri, Oct 4, 2019 at 7:34 PM Glen Peterson <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> It *works* with http1.1 (I will also look more at the fat-jar thing):
>>>>>>
>>>>>> $ curl --http1.1 --verbose --insecure https://localhost:8443 -D
>>>>>> headers.txt
>>>>>> * Rebuilt URL to: https://localhost:8443/
>>>>>> *   Trying 127.0.0.1...
>>>>>> * TCP_NODELAY set
>>>>>> * Connected to localhost (127.0.0.1) port 8443 (#0)
>>>>>> * ALPN, offering http/1.1
>>>>>> * successfully set certificate verify locations:
>>>>>> *   CAfile: /etc/ssl/certs/ca-certificates.crt
>>>>>>   CApath: /etc/ssl/certs
>>>>>> * TLSv1.3 (OUT), TLS handshake, Client hello (1):
>>>>>> * TLSv1.3 (IN), TLS handshake, Server hello (2):
>>>>>> * TLSv1.3 (IN), TLS Unknown, Certificate Status (22):
>>>>>> * TLSv1.3 (IN), TLS handshake, Unknown (8):
>>>>>> * TLSv1.3 (IN), TLS handshake, Certificate (11):
>>>>>> * TLSv1.3 (IN), TLS handshake, CERT verify (15):
>>>>>> * TLSv1.3 (IN), TLS handshake, Finished (20):
>>>>>> * TLSv1.3 (OUT), TLS change cipher, Client hello (1):
>>>>>> * TLSv1.3 (OUT), TLS Unknown, Certificate Status (22):
>>>>>> * TLSv1.3 (OUT), TLS handshake, Finished (20):
>>>>>> * SSL connection using TLSv1.3 / TLS_AES_256_GCM_SHA384
>>>>>> * ALPN, server accepted to use http/1.1
>>>>>> * Server certificate:
>>>>>> *  subject: C=US; ST=South Carolina; L=Upstate; O=OrganicDesign;
>>>>>> OU=Testing; CN=classVsJar.organicdesign.org
>>>>>> *  start date: Oct  2 20:53:35 2019 GMT
>>>>>> *  expire date: Oct  2 20:53:35 2022 GMT
>>>>>> *  issuer: C=US; ST=South Carolina; L=Upstate; O=OrganicDesign;
>>>>>> OU=Testing; CN=classVsJar.organicdesign.org
>>>>>> *  SSL certificate verify result: self signed certificate (18),
>>>>>> continuing anyway.
>>>>>> * TLSv1.3 (OUT), TLS Unknown, Unknown (23):
>>>>>> > GET / HTTP/1.1
>>>>>> > Host: localhost:8443
>>>>>> > User-Agent: curl/7.58.0
>>>>>> > Accept: */*
>>>>>> >
>>>>>> * TLSv1.3 (IN), TLS Unknown, Unknown (23):
>>>>>> < HTTP/1.1 200 OK
>>>>>> < Content-Type: text/html;charset=utf-8
>>>>>> < Content-Length: 178
>>>>>> < Server: Jetty(9.4.20.v20190813)
>>>>>> <
>>>>>> * TLSv1.3 (IN), TLS Unknown, Unknown (23):
>>>>>> <!DOCTYPE html>
>>>>>> <html lang="en">
>>>>>>   <head>
>>>>>>     <meta charset="utf-8">
>>>>>>     <title>Test Page</title>
>>>>>>   </head>
>>>>>>   <body>
>>>>>>     <h1>It works!</h1>
>>>>>>     <p>Working.</p>
>>>>>>   </body>
>>>>>> </html>
>>>>>> * Connection #0 to host localhost left intact
>>>>>>
>>>>>> On Fri, Oct 4, 2019 at 6:32 PM Greg Wilkins <[email protected]>
>>>>>> wrote:
>>>>>>
>>>>>>> I'm guessing the problem is the way you make your fat jar you must
>>>>>>> not be correctly combining the
>>>>>>> META-INF/services/org.eclipse.jetty.http.HttpFieldPreEncoder files
>>>>>>>
>>>>>>> To run both http1 and http2, you need that file to exist in the jar
>>>>>>> and to contain:
>>>>>>>
>>>>>>> org.eclipse.jetty.http.Http1FieldPreEncoder
>>>>>>> org.eclipse.jetty.http2.hpack.HpackFieldPreEncoder
>>>>>>>
>>>>>>>
>>>>>>> On Sat, 5 Oct 2019 at 07:35, Joakim Erdfelt <[email protected]>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Interesting, I wonder if you are hitting the response headers
>>>>>>>> issues with regards to HTTP/2.
>>>>>>>>
>>>>>>>> See:
>>>>>>>> https://github.com/eclipse/jetty.project/issues/3956
>>>>>>>> and https://github.com/eclipse/jetty.project/issues/4115
>>>>>>>>
>>>>>>>> Can you run curl again, but with HTTP/1.1?
>>>>>>>>
>>>>>>>> $ curl --http1.1 --verbose ....
>>>>>>>>
>>>>>>>> What kind of headers are you actually using?
>>>>>>>>
>>>>>>>> Joakim Erdfelt / [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Oct 4, 2019 at 4:04 PM Glen Peterson <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> I changed the logging configuration from INFO to DEBUG and found
>>>>>>>>> this error when Jetty tries to serve the request:
>>>>>>>>>
>>>>>>>>> Sending HeadersFrame@676f5d6c#1{end=false}
>>>>>>>>> Appended HeadersFrame@676f5d6c#1{end=false}, entries=1
>>>>>>>>> Flushing HTTP2ServerSession@74a58163{l:/0:0:0:0:0:0:0:1:8443 <->
>>>>>>>>> r:/0:0:0:0:0:0:0:1:53320,sendWindow=15728640,recvWindow=1048576,streams=1,NOT_CLOSED,null}
>>>>>>>>> Processing HeadersFrame@676f5d6c#1{end=false}
>>>>>>>>> CtxTbl[3319f232] encoding
>>>>>>>>> encode IdxFieldS1:':status: 200' to '88'
>>>>>>>>> Failure generating HeadersFrame@676f5d6c#1{end=false}
>>>>>>>>>
>>>>>>>>> java.lang.ArrayIndexOutOfBoundsException: Index 1 out of bounds
>>>>>>>>> for length 1
>>>>>>>>>
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http.PreEncodedHttpField.putTo(PreEncodedHttpField.java:118)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.hpack.HpackEncoder.encode(HpackEncoder.java:316)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.hpack.HpackEncoder.encode(HpackEncoder.java:204)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.generator.HeadersGenerator.generateHeaders(HeadersGenerator.java:72)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.generator.HeadersGenerator.generate(HeadersGenerator.java:56)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.generator.Generator.control(Generator.java:80)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Session$ControlEntry.generate(HTTP2Session.java:1250)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Flusher.process(HTTP2Flusher.java:187)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:223)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Session.frame(HTTP2Session.java:757)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Session.frames(HTTP2Session.java:727)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Stream.headers(HTTP2Stream.java:112)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.server.HttpTransportOverHTTP2.sendHeadersFrame(HttpTransportOverHTTP2.java:270)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.server.HttpTransportOverHTTP2.send(HttpTransportOverHTTP2.java:142)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:852)
>>>>>>>>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:929)
>>>>>>>>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:250)
>>>>>>>>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:226)
>>>>>>>>> at org.eclipse.jetty.server.HttpOutput.close(HttpOutput.java:308)
>>>>>>>>> at org.eclipse.jetty.server.HttpWriter.close(HttpWriter.java:47)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.server.ResponseWriter.close(ResponseWriter.java:161)
>>>>>>>>> at org.eclipse.jetty.server.Response.closeOutput(Response.java:844)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:517)
>>>>>>>>> at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:314)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:135)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.HTTP2Connection.produce(HTTP2Connection.java:170)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.http2.server.HTTP2ServerConnection.onOpen(HTTP2ServerConnection.java:150)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.AbstractEndPoint.upgrade(AbstractEndPoint.java:442)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.server.NegotiatingServerConnection.onFillable(NegotiatingServerConnection.java:130)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:426)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:320)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:158)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782)
>>>>>>>>> at
>>>>>>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918)
>>>>>>>>> at java.base/java.lang.Thread.run(Thread.java:834)
>>>>>>>>> Failing, entries processed/pending/queued=0/1/0
>>>>>>>>>
>>>>>>>>> I re-posted this version here:
>>>>>>>>> https://github.com/GlenKPeterson/classVsJar
>>>>>>>>>
>>>>>>>>> On Wed, Oct 2, 2019 at 5:40 PM Glen Peterson <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> Yes Joakim.  I just made one and posted it here:
>>>>>>>>>> https://github.com/GlenKPeterson/classVsJar
>>>>>>>>>>
>>>>>>>>>> On Wed, Oct 2, 2019 at 2:43 PM Joakim Erdfelt <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>> Do you have a project that you can share that replicates this?
>>>>>>>>>>>
>>>>>>>>>>> Joakim Erdfelt / [email protected]
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Wed, Oct 2, 2019 at 1:16 PM Glen Peterson <
>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> P.S. I was able to get some interesting output from wget2
>>>>>>>>>>>> (successor to wget).  It works fine running with the classes.  
>>>>>>>>>>>> With the jar
>>>>>>>>>>>> file, I get the following which seems jetty-related:
>>>>>>>>>>>>
>>>>>>>>>>>> $ wget2 -d --no-check-certificate
>>>>>>>>>>>> https://dev.memoryjoggerlibrary.com:8443/
>>>>>>>>>>>> 02.140606.876 name=check-certificate value=
>>>>>>>>>>>> https://dev.memoryjoggerlibrary.com:8443/ invert=1
>>>>>>>>>>>> 02.140606.876 name=check-certificate value=
>>>>>>>>>>>> https://dev.memoryjoggerlibrary.com:8443/ invert=1
>>>>>>>>>>>> 02.140606.876 Local URI encoding = 'UTF-8'
>>>>>>>>>>>> 02.140606.876 Input URI encoding = 'UTF-8'
>>>>>>>>>>>> 02.140606.876 Fetched HSTS data from '/home/gpeterso/.wget-hsts'
>>>>>>>>>>>> 02.140606.876 Fetched HPKP data from '/home/gpeterso/.wget-hpkp'
>>>>>>>>>>>> 02.140606.877 add TLS session data for
>>>>>>>>>>>> dev.memoryjoggerlibrary.com (maxage=64800, size=1260)
>>>>>>>>>>>> 02.140606.877 Fetched TLS session data from
>>>>>>>>>>>> '/home/gpeterso/.wget-session'
>>>>>>>>>>>> 02.140606.877 Fetched OCSP hosts from
>>>>>>>>>>>> '/home/gpeterso/.wget-ocsp_hosts'
>>>>>>>>>>>> 02.140606.877 Fetched OCSP fingerprints from
>>>>>>>>>>>> '/home/gpeterso/.wget-ocsp'
>>>>>>>>>>>> 02.140606.877 *url = https://dev.memoryjoggerlibrary.com:8443/
>>>>>>>>>>>> 02.140606.877 *3 https://dev.memoryjoggerlibrary.com:8443/
>>>>>>>>>>>> 02.140606.877 local filename = 'index.html'
>>>>>>>>>>>> 02.140606.877 host_add_job: job fname index.html
>>>>>>>>>>>> 02.140606.877 host_add_job: 0x55b15a6bfb60
>>>>>>>>>>>> https://dev.memoryjoggerlibrary.com:8443/
>>>>>>>>>>>> 02.140606.877 host_add_job: qsize 1 host-qsize=1
>>>>>>>>>>>> 02.140606.877 queue_size: qsize=1
>>>>>>>>>>>> 02.140606.877 queue_size: qsize=1
>>>>>>>>>>>> 02.140606.877 queue_size: qsize=1
>>>>>>>>>>>> 02.140606.877 [0] action=1 pending=0 host=0x0
>>>>>>>>>>>> 02.140606.877 qsize=1 blocked=0
>>>>>>>>>>>> 02.140606.877 pause=-1570039566877
>>>>>>>>>>>> 02.140606.877 dequeue job
>>>>>>>>>>>> https://dev.memoryjoggerlibrary.com:8443/
>>>>>>>>>>>> 02.140606.877 resolving dev.memoryjoggerlibrary.com:8443...
>>>>>>>>>>>> 02.140606.877 has 127.0.0.1:8443
>>>>>>>>>>>> 02.140606.877 Add dns cache entry dev.memoryjoggerlibrary.com
>>>>>>>>>>>> 02.140606.877 trying 127.0.0.1:8443...
>>>>>>>>>>>> 02.140606.877 GnuTLS init
>>>>>>>>>>>> 02.140606.877 Certificates loaded: -1
>>>>>>>>>>>> 02.140606.877 GnuTLS init done
>>>>>>>>>>>> 02.140606.877 TLS False Start requested
>>>>>>>>>>>> 02.140606.877 ALPN offering h2
>>>>>>>>>>>> 02.140606.877 ALPN offering http/1.1
>>>>>>>>>>>> 02.140606.877 found cached session data for
>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>> WARNING: The certificate is NOT trusted. The certificate issuer
>>>>>>>>>>>> is unknown.
>>>>>>>>>>>> 02.140606.885 TLS False Start: on
>>>>>>>>>>>> 02.140606.885 ALPN: Server accepted protocol 'h2'
>>>>>>>>>>>> 02.140606.885 Handshake completed
>>>>>>>>>>>> 02.140606.885 established connection
>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>> 02.140606.885 cookie_create_request_header for host=
>>>>>>>>>>>> dev.memoryjoggerlibrary.com path=
>>>>>>>>>>>> 02.140606.885 HTTP2 stream id 1
>>>>>>>>>>>> 02.140606.885 [0] action=1 pending=1 host=0x55b15a6bf9c0
>>>>>>>>>>>> 02.140606.885 qsize=1 blocked=0
>>>>>>>>>>>> 02.140606.885 pause=-1570039566885
>>>>>>>>>>>> 02.140606.885 [0] action=2 pending=1 host=0x55b15a6bf9c0
>>>>>>>>>>>> 02.140606.885   ##  pending_requests = 1
>>>>>>>>>>>> 02.140606.885   ##  loop responses=0
>>>>>>>>>>>> 02.140606.885 [FRAME 0] > SETTINGS
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > HEADERS
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > :method: GET
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > :path: /
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > :scheme: https
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > :authority:
>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > accept-encoding: gzip, deflate,
>>>>>>>>>>>> bzip2, xz, lzma
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > accept:
>>>>>>>>>>>> text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
>>>>>>>>>>>> 02.140606.885 [FRAME 1] > user-agent: wget2/1.0.0
>>>>>>>>>>>> 02.140606.885   ##  loop responses=0
>>>>>>>>>>>> 02.140606.886 Got delayed session data
>>>>>>>>>>>> 02.140606.886 found TLS session data for
>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>> 02.140606.886 removed TLS session data for
>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>> 02.140606.886 add TLS session data for
>>>>>>>>>>>> dev.memoryjoggerlibrary.com (maxage=64800, size=1260)
>>>>>>>>>>>> 02.140606.886   ##  loop responses=0
>>>>>>>>>>>> 02.140606.886 [FRAME 0] < SETTINGS
>>>>>>>>>>>> 02.140606.886 [FRAME 0] < WINDOW_UPDATE
>>>>>>>>>>>> 02.140606.886   ##  loop responses=0
>>>>>>>>>>>> 02.140606.886 [FRAME 0] > SETTINGS
>>>>>>>>>>>> 02.140606.886   ##  loop responses=0
>>>>>>>>>>>> 02.140606.886 [FRAME 0] < SETTINGS
>>>>>>>>>>>> 02.140606.886   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>> 02.140608.260   ##  loop responses=0
>>>>>>>>>>>>
>>>>>>>>>>>> That scrolled really fast in a loop until I hit CTRL-C
>>>>>>>>>>>>
>>>>>>>>>>>> 02.140608.260 host_increase_failure:
>>>>>>>>>>>> dev.memoryjoggerlibrary.com failures=1
>>>>>>>>>>>> 02.140608.260 closing connection
>>>>>>>>>>>>
>>>>>>>>>>>> It just sat there doing nothing, so I hit CTRL-C again to exit
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On Wed, Oct 2, 2019 at 1:43 PM Glen Peterson <
>>>>>>>>>>>> [email protected]> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Thank you for jetty.  I've been using it for a few years now
>>>>>>>>>>>>> and love it.  Especially that I can configure it programmatically 
>>>>>>>>>>>>> (with
>>>>>>>>>>>>> Kotlin code) and that you have updated the SSL/TLS protocol 
>>>>>>>>>>>>> defaults over
>>>>>>>>>>>>> time.  Such an improvement over Tomcat!
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Problem*
>>>>>>>>>>>>> My problem may be jar-file/classpath related and not jetty
>>>>>>>>>>>>> related, but then why does jetty actually call my code, service 
>>>>>>>>>>>>> the
>>>>>>>>>>>>> request, but not return the response?
>>>>>>>>>>>>>
>>>>>>>>>>>>> I recently enabled HTTP/2 (Google wants that for a Progressive
>>>>>>>>>>>>> Web App).  Now if I run my app the way IntelliJ does, giving the 
>>>>>>>>>>>>> compiled
>>>>>>>>>>>>> classes directory, then adding all the jar dependencies it works. 
>>>>>>>>>>>>> `java
>>>>>>>>>>>>> -classpath classes/:bunch-of-jar-files... MainClassName` it 
>>>>>>>>>>>>> works.  But if
>>>>>>>>>>>>> I run from the fat-jar file it doesn't work.
>>>>>>>>>>>>>
>>>>>>>>>>>>> *curl*
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Jar File Failure:*
>>>>>>>>>>>>> $ curl --insecure https://dev.memoryjoggerlibrary.com:8443 -D
>>>>>>>>>>>>> headers.txt
>>>>>>>>>>>>> curl: (56) Unexpected EOF
>>>>>>>>>>>>> $ ls -s
>>>>>>>>>>>>> total 0
>>>>>>>>>>>>> 0 headers.txt
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Class Files Success:*
>>>>>>>>>>>>> That same curl command returns the HTML file I was expecting
>>>>>>>>>>>>> when running with the massive classpath (no fat-jar), plus the 
>>>>>>>>>>>>> following
>>>>>>>>>>>>> headers.txt:
>>>>>>>>>>>>> HTTP/2 200
>>>>>>>>>>>>> server: Jetty(9.4.20.v20190813)
>>>>>>>>>>>>> content-type: text/html;charset=utf-8
>>>>>>>>>>>>>
>>>>>>>>>>>>> I have determined that the jar files included by maven exactly
>>>>>>>>>>>>> match the jar files specified on the command line.
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Chrome*
>>>>>>>>>>>>> With chrome, the class files work great, but the Jar file
>>>>>>>>>>>>> produces, "This site can’t be reached... unexpectedly closed the
>>>>>>>>>>>>> connection... ERR_CONNECTION_CLOSED"
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Unaffected*
>>>>>>>>>>>>> *Log Files:*
>>>>>>>>>>>>> I can see in the log files in both cases that the request is
>>>>>>>>>>>>> being processed, but there is no exception thrown and no response
>>>>>>>>>>>>> apparently written.
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Nmap Cipher Test:*
>>>>>>>>>>>>> Whether it yields HTML or not, the server gives the same
>>>>>>>>>>>>> response to my cipher test:
>>>>>>>>>>>>> $ nmap --script ssl-cert,ssl-enum-ciphers -p 8443
>>>>>>>>>>>>> dev.memoryjoggerlibrary.com
>>>>>>>>>>>>>
>>>>>>>>>>>>> Starting Nmap 7.60 ( https://nmap.org ) at 2019-10-02 13:32
>>>>>>>>>>>>> EDT
>>>>>>>>>>>>> Nmap scan report for dev.memoryjoggerlibrary.com (127.0.0.1)
>>>>>>>>>>>>> Host is up (0.000053s latency).
>>>>>>>>>>>>> rDNS record for 127.0.0.1: localhost
>>>>>>>>>>>>>
>>>>>>>>>>>>> PORT     STATE SERVICE
>>>>>>>>>>>>> 8443/tcp open  https-alt
>>>>>>>>>>>>> | ssl-cert: Subject: commonName=
>>>>>>>>>>>>> dev.memoryjoggerlibrary.com/organizationName=PlanBase
>>>>>>>>>>>>> Inc./stateOrProvinceName=Massachusetts/countryName=US
>>>>>>>>>>>>> | Issuer: commonName=
>>>>>>>>>>>>> dev.memoryjoggerlibrary.com/organizationName=PlanBase
>>>>>>>>>>>>> Inc./stateOrProvinceName=Massachusetts/countryName=US
>>>>>>>>>>>>> | Public Key type: rsa
>>>>>>>>>>>>> | Public Key bits: 2048
>>>>>>>>>>>>> | Signature Algorithm: sha256WithRSAEncryption
>>>>>>>>>>>>> | Not valid before: 2019-09-25T20:57:00
>>>>>>>>>>>>> | Not valid after:  2022-09-25T20:57:00
>>>>>>>>>>>>> | MD5:   483e 988f 709f 7300 3f3d 1d51 4f95 81cb
>>>>>>>>>>>>> |_SHA-1: abe8 c872 c7d7 dfb1 4152 8bf3 2fee 5617 7613 94cd
>>>>>>>>>>>>> | ssl-enum-ciphers:
>>>>>>>>>>>>> |   TLSv1.2:
>>>>>>>>>>>>> |     ciphers:
>>>>>>>>>>>>> |       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (rsa 2048) - A
>>>>>>>>>>>>> |       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (rsa 2048) - A
>>>>>>>>>>>>> |       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (rsa 2048)
>>>>>>>>>>>>> - A
>>>>>>>>>>>>> |     compressors:
>>>>>>>>>>>>> |       NULL
>>>>>>>>>>>>> |     cipher preference: server
>>>>>>>>>>>>> |_  least strength: A
>>>>>>>>>>>>>
>>>>>>>>>>>>> Nmap done: 1 IP address (1 host up) scanned in 0.19 seconds
>>>>>>>>>>>>>
>>>>>>>>>>>>> *Details:*
>>>>>>>>>>>>> I'm using a self-signed certificate.
>>>>>>>>>>>>>
>>>>>>>>>>>>> Currently using (from maven .pom):
>>>>>>>>>>>>> <jetty.version>9.4.20.v20190813
>>>>>>>>>>>>> jetty-server
>>>>>>>>>>>>> jetty-alpn-conscrypt-server
>>>>>>>>>>>>> http2-common
>>>>>>>>>>>>> http2-hpack
>>>>>>>>>>>>> http2-server
>>>>>>>>>>>>>
>>>>>>>>>>>>> Not currently using: conscrypt-openjdk (seems to be overridden
>>>>>>>>>>>>> by the conscrypt-openjdk-uber included in 
>>>>>>>>>>>>> jetty-alpn-conscrypt-server -
>>>>>>>>>>>>> same issues with or without this dependency)
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> --
>>>>>>>>>>>>> Glen K. Peterson
>>>>>>>>>>>>> (828) 393-0081
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Glen K. Peterson
>>>>>>>>>>>> (828) 393-0081
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> jetty-users mailing list
>>>>>>>>>>>> [email protected]
>>>>>>>>>>>> To change your delivery options, retrieve your password, or
>>>>>>>>>>>> unsubscribe from this list, visit
>>>>>>>>>>>> https://www.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://www.eclipse.org/mailman/listinfo/jetty-users
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Glen K. Peterson
>>>>>>>>>> (828) 393-0081
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Glen K. Peterson
>>>>>>>>> (828) 393-0081
>>>>>>>>> _______________________________________________
>>>>>>>>> jetty-users mailing list
>>>>>>>>> [email protected]
>>>>>>>>> To change your delivery options, retrieve your password, or
>>>>>>>>> unsubscribe from this list, visit
>>>>>>>>> https://www.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://www.eclipse.org/mailman/listinfo/jetty-users
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Greg Wilkins <[email protected]> CTO http://webtide.com
>>>>>>> _______________________________________________
>>>>>>> jetty-users mailing list
>>>>>>> [email protected]
>>>>>>> To change your delivery options, retrieve your password, or
>>>>>>> unsubscribe from this list, visit
>>>>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Glen K. Peterson
>>>>>> (828) 393-0081
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Glen K. Peterson
>>>>> (828) 393-0081
>>>>> _______________________________________________
>>>>> jetty-users mailing list
>>>>> [email protected]
>>>>> To change your delivery options, retrieve your password, or
>>>>> unsubscribe from this list, visit
>>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>>
>>>>
>>>>
>>>> --
>>>> Greg Wilkins <[email protected]> CTO http://webtide.com
>>>> _______________________________________________
>>>> jetty-users mailing list
>>>> [email protected]
>>>> To change your delivery options, retrieve your password, or unsubscribe
>>>> from this list, visit
>>>> https://www.eclipse.org/mailman/listinfo/jetty-users
>>>
>>>
>>>
>>> --
>>> Glen K. Peterson
>>> (828) 393-0081
>>>
>>
>>
>> --
>> Glen K. Peterson
>> (828) 393-0081
>> _______________________________________________
>> jetty-users mailing list
>> [email protected]
>> To change your delivery options, retrieve your password, or unsubscribe
>> from this list, visit
>> https://www.eclipse.org/mailman/listinfo/jetty-users
>
>
>
> --
> Greg Wilkins <[email protected]> CTO http://webtide.com
> _______________________________________________
> jetty-users mailing list
> [email protected]
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://www.eclipse.org/mailman/listinfo/jetty-users



-- 
Glen K. Peterson
(828) 393-0081
_______________________________________________
jetty-users mailing list
[email protected]
To change your delivery options, retrieve your password, or unsubscribe from 
this list, visit
https://www.eclipse.org/mailman/listinfo/jetty-users

Reply via email to