Search code examples
akkaakka-stream

com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka.stream' when running jar file


I'm trying to run an Akka stream application, but get an exception when running on linux.

When I run it with Windows debugger it is working.

I tried both these commands:

java -jar ./myService.jar -Dconfig.resource=/opt/myservice/conf/application.conf
java -jar ./myService.jar -Dconfig.file=/opt/myService/conf/application.conf

But I get the following exception:

No configuration setting found for key 'akka.stream'

My application.conf file:

akka {
    event-handlers = ["akka.event.slf4j.Slf4jEventHandler"]
    loglevel = "DEBUG"
    actor {
        debug {
            # enable function of LoggingReceive, which is to log any received message 
            at
            # DEBUG level
            receive = on
        }
    }

    stream {
        # Default materializer settings
        materializer {
            max-input-buffer-size = 16

            dispatcher = ""

            subscription-timeout {
                mode = cancel
                timeout = 5s
            }

            # Enable additional troubleshooting logging at DEBUG log level
            debug-logging = off

            # Maximum number of elements emitted in batch if downstream signals large demand
            output-burst-limit = 1000

            auto-fusing = on

            # Those stream elements which have explicit buffers (like mapAsync, mapAsyncUnordered,
            # buffer, flatMapMerge, Source.actorRef, Source.queue, etc.) will preallocate a fixed
            # buffer upon stream materialization if the requested buffer size is less than this
            max-fixed-buffer-size = 1000000000

            sync-processing-limit = 1000

            debug {
                fuzzing-mode = off
            }
        }

        blocking-io-dispatcher = "akka.stream.default-blocking-io-dispatcher"

        default-blocking-io-dispatcher {
            type = "Dispatcher"
            executor = "thread-pool-executor"
            throughput = 1

            thread-pool-executor {
                fixed-pool-size = 16
            }
        }
    }

    # configure overrides to ssl-configuration here (to be used by akka-streams, 
    and akka-http – i.e. when serving https connections)
    ssl-config {
        protocol = "TLSv1.2"
    }
}

ssl-config {
    logger = "com.typesafe.sslconfig.akka.util.AkkaLoggerBridge"
}

i've added:

println(system.settings.config)

but i get a result without stream section

Can you assist?


Solution

  • The syntax for the java command line is:

    java [options] -jar filename [args]
    

    This ordering matters: you must set any options before the -jar option.

    So in your case:

    java -Dconfig.file=/opt/myService/conf/application.conf -jar ./myService.jar