This is broken since 2.128 there was an upgrade to winstone and thus jetty to version 9.4.8 but jetty changed the loading to use a service loader mechanism provided by the classpath. Since jenkins default installation is using the -jar command there is no way to pass the Service jar files to the command line of jenkins. -jar command line ignores any other jars provided using -classpath. Additionally these can't be passed using -Xbootclasspath either they throw a ClassNotFoundException for the jetty.ssl classes.
Trying to use conscrypt is also a non starter due to the previous issue. There is a possibility winstone can use the common URLClassLoader for loading the server classes but that is not what is happening. winstone initializes the Common ClassLoader before the listeners but doesn't do anything with it until after the listeners are started.
Please see JENKINS-52358 for more details
Code changed in jenkins
User: Olivier Lamy
Path:
pom.xml
src/main/java/Main.java
http://jenkins-ci.org/commit/extras-executable-war/70229bb90168a4af3752bb735206ae5934ce48ec
Log:
Merge pull request #11 from olamy/feature/http2_connector_missing_service_loader
JENKINS-45438- Set context classloader to get ServiceLoader mechanism workingCompare: https://github.com/jenkinsci/extras-executable-war/compare/dec7ac76428b...70229bb90168