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
