2013-05-27 5 views
3

을 사용하여 application.conf를 덮어 쓰지 않을 것입니다. akka 2.1.4는 typesafe 구성을 사용했기 때문에 플레이 프레임 워크처럼 명령 행을 통해 던져 넣은 -D 매개 변수를 무시합니다. 그런 식으로 작동하지 않는 것 같아요. -Dakka.remote.netty.port=2552을 추가하는 것만으로는 명령 행에 추가 할 때 실제로 아무 것도 변경하지 않습니다. 재정의가 작동하도록하려면 아무 것도 활성화해야합니까?Akka는 명령 행 매개 변수

추가 정보 : 나는 내가 잘못하고 있었는지 발견, sbt assembly

답변

6

이 좋아하고 이후 인 IntelliJ 런처와 java -cp app.jar -Dakka.remote.netty.port=2552으로 -D 매개 변수를 사용하여 시도했다. application.conf의 섹션 만로드 된 경우 재정의가 작동하지 않는 것으로 보입니다.

val system = ActorSystem("myActorSystem",ConfigFactory.load.getConfig("client")) 

application.conf 파일 :

client{ 
    akka { 

    log-config-on-start = on 
    loglevel = "INFO" 
    actor { 
     provider = "akka.remote.RemoteActorRefProvider" 
     include "serialization.conf" 
    } 

    remote { 
    transport = "akka.remote.netty.NettyRemoteTransport" 
    netty { 
     hostname = "127.0.0.1" 
     port = 2552 
    } 
    log-sent-messages = off 
    log-received-messages = off 
    } 
    } 
} 
에만이 같은 application.conf에서 특정 부분로드 하여 배우의 시스템을 구성 할 때 -Dakka.remote.netty.port=2553와 그물코 포트를 재정의 할 수 없습니다

이 경우로드 할 하위 섹션으로 "client"를 지정하더라도 명령 줄 매개 변수를 사용하여 값을 무시하는 값으로 키를 "client"앞에 추가해야합니다.

그런 식으로로드 될 때 config 파일의 값은 "클라이언트"앞에 붙지 않습니다. 따라서 -Dclient.akka.remote.netty.port=2553을 사용하면 익숙해 지듯이 효과적으로 재정의 할 수 있습니다.

+1

"특정 섹션을로드하는 것만으로 Netty 포트를 무시할 수 없습니다." 여기에 아무 것도 없습니다. conf 파일에'client'를 추가 한 후에는 java 옵션에 추가해야합니다. 그래서 Dakka.remote.netty.port = 2553 대신 -D ** client **. akka.remote.netty.port = 2553'을 시도해야합니다. – Cherry

3

동일한 문제가 발생했습니다. 나는 'java -jar project.jar -Dblah = whatever'를 사용하여 conf 파일을 무시하지 않는 프로젝트를 실행했다. 그러나 'java -jar -Dblah = what project.jar'는 conf 파일을 덮어 썼습니다.