Fix potential Jetty MalformedURLException
Update JettyEmbeddedServletContainerFactory to use the JarResource class to create the base resource. This prevents a potential "java.lang.NullPointerException: no !/ in spec" error which can occur when using shaded executable jars. Fixes gh-2245
This commit is contained in:
parent
4ad5c52dd7
commit
1fc9d38396
|
|
@ -40,6 +40,7 @@ import org.eclipse.jetty.server.handler.ErrorHandler;
|
||||||
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
import org.eclipse.jetty.servlet.ErrorPageErrorHandler;
|
||||||
import org.eclipse.jetty.servlet.ServletHolder;
|
import org.eclipse.jetty.servlet.ServletHolder;
|
||||||
import org.eclipse.jetty.servlet.ServletMapping;
|
import org.eclipse.jetty.servlet.ServletMapping;
|
||||||
|
import org.eclipse.jetty.util.resource.JarResource;
|
||||||
import org.eclipse.jetty.util.resource.Resource;
|
import org.eclipse.jetty.util.resource.Resource;
|
||||||
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
import org.eclipse.jetty.util.ssl.SslContextFactory;
|
||||||
import org.eclipse.jetty.webapp.AbstractConfiguration;
|
import org.eclipse.jetty.webapp.AbstractConfiguration;
|
||||||
|
|
@ -259,7 +260,8 @@ public class JettyEmbeddedServletContainerFactory extends
|
||||||
if (root != null) {
|
if (root != null) {
|
||||||
try {
|
try {
|
||||||
if (!root.isDirectory()) {
|
if (!root.isDirectory()) {
|
||||||
Resource resource = Resource.newResource("jar:" + root.toURI() + "!");
|
Resource resource = JarResource.newJarResource(Resource
|
||||||
|
.newResource(root));
|
||||||
handler.setBaseResource(resource);
|
handler.setBaseResource(resource);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue