rabix / bunny

[Legacy] Executor for CWL workflows. Executes sbg:draft-2 and CWL 1.0
http://rabix.io
Apache License 2.0
74 stars 28 forks source link

Error when running rabix-engine-rest #454

Closed kmavrommatis closed 5 years ago

kmavrommatis commented 5 years ago

Hi, I am trying to run rabix-engine-rest with TES background I have modified the config/core.properties and added lines to enable tes and aws s3 I copied pasted that part of the configuration from the corresponding file of rabix-cli which is able to work with TES

backend.embedded.types=TES
backend.execution.directory=.
backend.execution.directory.name=exe
backend.store=LOCAL

#TES Backend Options
tes.client_scheme=http
tes.client_host=localhost
tes.client_port=8000
#http client timeouts below are in seconds
tes.client_connect_timeout=60
tes.client_read_timeout=60
tes.client_write_timeout=60

#How many threads are available to run and poll TES tasks
tes.task_thread_pool=50

#How many threads are available to handle the postprocessing of complete tasks
tes.postprocessing_thread_pool=1
#tes.mongodburl=
#Url to the storage folder, supports file:// gs:// and s3:// urls
#if gs is used, authentication is taken from the environment
#for s3 the following keys should be added to a config file: s3.access_key, s3.secret_key

tes.storage_base=s3://s3.us-east-1.amazonaws.com/bucketfunnel

#S3 options.
#Format: s3.<provider_name>.<option>
#The provider name is used to group the options so its value is not important.
#Timeouts are in milliseconds.

s3.amazon.endpoints= s3://s3.amazonaws.com, s3://s3.us-east-1.amazonaws.com, s3://s3.us-east-2.amazonaws.com, s3://s3.us-west-1.amazonaws.com, s3://s3.us-west-2.amazonaws.com, s3://s3-us-east-1.amazonaws.com
s3.amazon.protocol=HTTPS
s3.amazon.access_key=#########
s3.amazon.secret_key=########
s3.amazon.max_retry_error=10
s3.amazon.connection_timeout=50000
s3.amazon.max_connections=50
s3.amazon.socket_timeout=50000
#s3.amazon.signer_override=AWS4SignerType
s3.amazon.path_style_access=false

I also tried the settings that appear in https://github.com/rabix/bunny/blob/develop/rabix-backend-tes/README.md, but the key names for these options seem not to be working.

When I start the server I get the error message

16:01:11.756 [main] DEBUG com.amazonaws.AmazonWebServiceClient - Internal logging successfully configured to commons logger: true
16:01:11.825 [main] DEBUG com.amazonaws.metrics.AwsSdkMetrics - Admin mbean registered under com.amazonaws.management:type=AwsSdkMetrics
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/conn/DnsResolver
    at com.amazonaws.http.apache.client.impl.ApacheHttpClientFactory.<init>(ApacheHttpClientFactory.java:41)
    at com.amazonaws.http.AmazonHttpClient.<clinit>(AmazonHttpClient.java:149)
    at com.amazonaws.AmazonWebServiceClient.<init>(AmazonWebServiceClient.java:162)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:570)
    at com.amazonaws.services.s3.AmazonS3Client.<init>(AmazonS3Client.java:550)
    at com.upplication.s3fs.AmazonS3ClientFactory.createAmazonS3(AmazonS3ClientFactory.java:13)
    at com.upplication.s3fs.AmazonS3Factory.getAmazonS3(AmazonS3Factory.java:49)
    at com.upplication.s3fs.S3FileSystemProvider.getAmazonS3(S3FileSystemProvider.java:563)
    at com.upplication.s3fs.S3FileSystemProvider.createFileSystem(S3FileSystemProvider.java:559)
    at com.upplication.s3fs.S3FileSystemProvider.newFileSystem(S3FileSystemProvider.java:96)
    at java.nio.file.FileSystems.newFileSystem(FileSystems.java:326)
    at org.rabix.backend.tes.TESModule.configure(TESModule.java:70)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
    at com.google.inject.AbstractModule.install(AbstractModule.java:122)
    at org.rabix.engine.rest.ServerBuilder$1.configure(ServerBuilder.java:103)
    at com.google.inject.AbstractModule.configure(AbstractModule.java:62)
    at com.google.inject.spi.Elements$RecordingBinder.install(Elements.java:340)
    at com.google.inject.spi.Elements.getElements(Elements.java:110)
    at com.google.inject.internal.InjectorShell$Builder.build(InjectorShell.java:138)
    at com.google.inject.internal.InternalInjectorCreator.build(InternalInjectorCreator.java:104)
    at com.google.inject.Guice.createInjector(Guice.java:99)
    at com.google.inject.Guice.createInjector(Guice.java:73)
    at com.squarespace.jersey2.guice.BootstrapUtils.createInjector(BootstrapUtils.java:290)
    at com.squarespace.jersey2.guice.BootstrapUtils.newInjector(BootstrapUtils.java:210)
    at com.squarespace.jersey2.guice.BootstrapUtils.newInjector(BootstrapUtils.java:191)
    at org.rabix.engine.rest.ServerBuilder.build(ServerBuilder.java:84)
    at org.rabix.engine.rest.EngineRestEntry.main(EngineRestEntry.java:30)
Caused by: java.lang.ClassNotFoundException: org.apache.http.conn.DnsResolver
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 28 more

The project was built using mvn install -P all,tes, using mvn 3.6.0 on a Mac.

Thanks in advance for your help

kmavrommatis commented 5 years ago

Answering my own question: the problem was with dependencies in the local maven repository. I cleaned it up and recompiled the software without problem Thanks