-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Syte.
On 8/18/16 11:19 AM, Syte Beimin wrote: > Hello, > > For a while now I've been attempting to get a webapp working that > uses a custom NIO.2 FileSystem implementation ( > https://github.com/Upplication/Amazon-S3-FileSystem-NIO2). It > seems like the Service Provider Interface isn't working when the > war is deployed in tomcat resulting in a > java.nio.file.ProviderNotFoundException when > FileSystems.newFileSystem() is called for and URI like > "s3://access_key:secret_...@s3.amazonaws.com/bucket". > > All googling and code debugging seems to point at > java.nio.file.spi.FileSystemProvider.loadInstalledProviders() > > Specifically ServiceLoader<FileSystemProvider> sl = > ServiceLoader.load(FileSystemProvider.class, > ClassLoader.getSystemClassLoader()); > > This attempts to find all resources (inside jars in the classpath) > that match > "/META-INF/services/java.nio.file.spi.FileSystemProvider" > > Generally, in the Eclipse IDE, this works like a charm but once > deployed in tomcat the FileSystemProviders aren't found. Might > this point towards an issue with tomcat's custom ClassLoader > strategy? > > Has anyone else run into problems with this and perhaps found a > fix/workaround? Or did I miss anything in my hunt for a solution? Based solely upon what you have posted here, I would expect that you'll need to: 1. Place your s3fs.jar in Tomcat's bin/ directory 2. Explicitly set the CLASSPATH in bin/setenv.sh to point to bin/s3fs.ja r That may kick things off for you. Note that if you try to load your custom NIO.2 FileSystem implementation from out of a WAR file, you are very *very* likely to cause a ClassLoader-pinning leak where your application can never really fully un-deploy and cleanup its resources. If you follow my two steps above, that should not happen (because the classes won't be loaded from a disposable ClassLoader). - -chris -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBCAAGBQJXthS+AAoJEBzwKT+lPKRYka0QAK+kBqaDVey/MT+N2tc8QL7x toSsd1WJhi9mGi0pl9mKuNuGJ6KO4DjUC9n42VKrUoYxH+g9i+5huEEWNsXz8XkM 4oK4Mv4m+zaPIYAiZLxRuCFXZv7Qe5lZCjYotfYdLGfgGh+PkAGjcK3C28mIL6PP DVGOZxi0ZRPDTj7Gl6Tyg05gBHBRnicYTofW63/gms7DFyDYmTJI83giewgr3Ooy B4l5GNkyBPYMJ4CIwPZLX+s5ciKWXYS+IlD8bBwxewK+MnOrPr9GKfwUIUhD63kx 1XratRl4vGXtjFVeXJOcA+OqRwzF6sV+lycTmZz+rNkeSo+llJBoI4RgNT4W/HBT XIvyB+12Se8/bYmSoqZh1YXjhgEyyBr9rdvFXpSKwjDNSWIMT7GzLpj2tkvIHhME fmy0yxW2sz4PE2G3lVbYwgkB7Psxe2m4NabXZtG+rknjnTvQyhhQf9QHyquyyJxL iMJDh+LXCFrggLhMq5UrR/YtZwqqvk15HDi0P/+m7BgX1urQhz4bsNd4PYt8i8k0 OUimFnxhX+TljG+K4hJ02ZwdmEmF5ijRgcxVaIVWS86KhO9blh4etYkrH9DgZSqJ 8+H6meTYKsLbIAR26fQbSibFpuNMoEjgjUhFYRZ2NK1sOzlRnt4OhFz1bySMGHbg mvufYV8i0KD2UmHMhLOi =fPMQ -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org