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

Reply via email to