Getting "Provider "vfs" not installed" when uploading my Spring Boot WAR file, using Jobrunr, to a remote Wildfly server

461 views Asked by At

I'm using the following:

  • Java 8
  • Wildfly 10 (on my remote hosting service)
  • 10.3.38-MariaDB
  • Spring Boot 2.7.8
  • jobrunr 3.1.2
  • Maven (packaging = war)

My webapp works fine locally when I run it in Eclipse with Spring Boot, but when I try to upload it to my hosted WebLogic service via the web interface, I get a "Provider "vfs" not installed" and it seems related to jobrunr's sqlStorageProvider bean. Below is the stack trace.

How do I fix this?

Cannot upload deployment: {"WFLYCTL0080: Failed services" => {"jboss.undertow.deployment.default-server.default-host.\"/myapp-0.0.1-SNAPSHOT\"" => "org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host.\"/myapp-0.0.1-SNAPSHOT\": 

java.lang.RuntimeException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jobScheduler' defined in class path resource [org/jobrunr/autoconfigure/JobRunrAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jobScheduler' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageProvider' defined in class path resource [org/jobrunr/autoconfigure/storage/JobRunrSqlStorageAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'sqlStorageProvider' threw exception; nested exception is org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: java.lang.RuntimeException: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jobScheduler' defined in class path resource [org/jobrunr/autoconfigure/JobRunrAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jobScheduler' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageProvider' defined in class path resource [org/jobrunr/autoconfigure/storage/JobRunrSqlStorageAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'sqlStorageProvider' threw exception; nested exception is org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'jobScheduler' defined in class path resource [org/jobrunr/autoconfigure/JobRunrAutoConfiguration.class]: Unsatisfied dependency expressed through method 'jobScheduler' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageProvider' defined in class path resource [org/jobrunr/autoconfigure/storage/JobRunrSqlStorageAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'sqlStorageProvider' threw exception; nested exception is org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'storageProvider' defined in class path resource [org/jobrunr/autoconfigure/storage/JobRunrSqlStorageAutoConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'sqlStorageProvider' threw exception; nested exception is org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.jobrunr.storage.StorageProvider]: Factory method 'sqlStorageProvider' threw exception; nested exception is org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: org.jobrunr.JobRunrException: JobRunr encountered a problematic exception. Please create a bug report (if possible, provide the code to reproduce this and the stacktrace) Caused by: java.lang.reflect.InvocationTargetException Caused by: java.nio.file.FileSystemNotFoundException: Provider "vfs" not installed"}}

2

There are 2 answers

1
rdehuyss On BEST ANSWER

I'm afraid WildFly isn't supported with JobRunr. See also https://github.com/jobrunr/jobrunr/issues?q=is%3Aissue+vfs.

There is a workaround if you create the tables yourself and skip the generation of the tables in JobRunr. See the docs on how to achieve this.

0
CarlosSM On

VFS is not supported by jobrunr, so jboss or wildfly (in general those that still uses VFS, won't allow you to generate automatically the database for you).

Also, jobrunr provides you a way to generate the SQL database tables, just in case you need it, and you will need it if you want to upgrade to a jobrunr version with changes in the database. Definitely you need to have org.jobrunr.database.skip-create=true to force jobrunr not generate automatically those databases.

I am afraid that this workaround is not working for NO-SQL databases as is not possible to manually create the database.

https://www.jobrunr.io/en/documentation/installation/storage/