While trying to implement classpath locations for URL a URLStreamHandlerProvider implementation was developed and added to META-INF/services/java.net.spi.URLStreamHandlerProvider as per https://docs.oracle.com/javase/9/docs/api/java/net/spi/URLStreamHandlerProvider.html Everything works fine when application starts from IDE but when it is packed into single jar with spring-boot-maven-plugin ServiceLoader fails to load the URLStreamHandlerProvider with class not found exception. This is probably related to different classloaders... Any help how to fix or workaround? BTW it is not possible to use URL.setURLStreamHandlerFactory as embedded tomcat does this too. Spring boot 2.7.2 java 11
Exception: Exception in thread "main" java.lang.reflect.InvocationTargetException at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) at org.springframework.boot.loader.Launcher.launch(Launcher.java:108) at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) Caused by: java.util.ServiceConfigurationError: java.net.spi.URLStreamHandlerProvider: Provider com.example.springlog.ClasspathURLStreamHandlerProvider not found at java.base/java.util.ServiceLoader.fail(ServiceLoader.java:589)