2016-12-16 1 views
-1

나는 다른 파일 즉 spring.properties에서 $ {BROADBAND_DN_RBSID_SWITCH} 값 #temp switch BROADBAND_DN_RBSID_SWITCH=DN읽기 속성 파일의 값은

을 읽고있다하지만 무엇입니까

<choice> 
    <when> 
     <simple>${BROADBAND_DN_RBSID_SWITCH} == 'DN'</simple> 
      <to uri="bean:bbGetServiceProfileProcessorByDN"/> 
    </when> 
</choice> 

camel.config에서 다음 완패를 정의 당신은 간단한 언어로 ${xxx}을 사용할 수 없습니다 오류

Message History 
--------------------------------------------------------------------------------------------------------------------------------------- 
RouteId    ProcessorId   Processor                  Elapsed (ms) 
[BROADBAND-ROUTES ] [BROADBAND-ROUTES ] [direct://BROADBAND               ] [  380] 
[BROADBAND-ROUTES ] [multicast4  ] [multicast                  ] [  380] 
[BROADBAND-ROUTES ] [choice17   ] [when[simple{${BROADBAND_DN_RBSID_SWITCH} == 'DN'}]choice[]     ] [  14] 

    Stacktrace 
--------------------------------------------------------------------------------------------------------------------------------------- 
org.apache.camel.CamelExecutionException: Exception occurred during execution on the exchange: Exchange[ID-INPUSCPC08541-53313-1481817337243-0-29] 
    at org.apache.camel.util.ObjectHelper.wrapCamelExecutionException(ObjectHelper.java:1696) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.builder.SimpleBuilder.createPredicate(SimpleBuilder.java:104) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.builder.SimpleBuilder.matches(SimpleBuilder.java:83) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.FilterProcessor.matches(FilterProcessor.java:65) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.ChoiceProcessor.process(ChoiceProcessor.java:93) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:77) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:468) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:190) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:109) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:814) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.MulticastProcessor.access$200(MulticastProcessor.java:84) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:314) [camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:299) [camel-core-2.17.0.jar:2.17.0] 
    at java.util.concurrent.FutureTask.run(FutureTask.java:262) [?:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [?:1.7.0_45] 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [?:1.7.0_45] 
    at java.lang.Thread.run(Thread.java:744) [?:1.7.0_45] 
Caused by: org.apache.camel.language.simple.types.SimpleIllegalSyntaxException: Unknown function: BROADBAND_DN_RBSID_SWITCH at location 0 
${BROADBAND_DN_RBSID_SWITCH} == 'DN' 
* 

    at org.apache.camel.language.simple.SimplePredicateParser.parsePredicate(SimplePredicateParser.java:69) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.SimpleLanguage.createPredicate(SimpleLanguage.java:115) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.builder.SimpleBuilder.createPredicate(SimpleBuilder.java:102) ~[camel-core-2.17.0.jar:2.17.0] 
    ... 16 more 
Caused by: org.apache.camel.language.simple.types.SimpleParserException: Unknown function: BROADBAND_DN_RBSID_SWITCH 
    at org.apache.camel.language.simple.ast.SimpleFunctionExpression.createSimpleExpression(SimpleFunctionExpression.java:216) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.ast.SimpleFunctionExpression.createExpression(SimpleFunctionExpression.java:40) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.ast.SimpleFunctionStart.doCreateLiteralExpression(SimpleFunctionStart.java:58) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.ast.SimpleFunctionStart.createExpression(SimpleFunctionStart.java:48) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.ast.BinaryExpression.createExpression(BinaryExpression.java:78) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.SimplePredicateParser.createPredicates(SimplePredicateParser.java:438) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.SimplePredicateParser.doParsePredicate(SimplePredicateParser.java:119) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.SimplePredicateParser.parsePredicate(SimplePredicateParser.java:66) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.language.simple.SimpleLanguage.createPredicate(SimpleLanguage.java:115) ~[camel-core-2.17.0.jar:2.17.0] 
    at org.apache.camel.builder.SimpleBuilder.createPredicate(SimpleBuilder.java:102) ~[camel-core-2.17.0.jar:2.17.0] 
    ... 16 more 

답변

1

다음은 속성 placeho를 참조하십시오 알았어.

<simple>${properties:BROADBAND_DN_RBSID_SWITCH} == 'DN'</simple> 

이 문서에 대한 자세한 내용보기 : : http://camel.apache.org/simple

0

다른 가능한 솔루션 : 당신은 낙타 컨텍스트 속성 홀더를 정의 할 수 있습니다로이에 그

<camelContext id="my-camel-context"> 
    <propertyPlaceholder 
     location="file:${config.path}/my.properties" id="properties" /> 

주 대신 properties 기능을 사용 평등 한 Spring 또는 System (즉, $ {config.path})의 다른 속성을 사용할 수있는 수준이면

전자는

<simple>{{BROADBAND_DN_RBSID_SWITCH}} == 'DN'</simple> 

낙타 propertyPlaceholder으로 {{표기법을 사용하면 일반 스프링 PropertyPlaceholder에 비해 한계가있다, 그러나 다만 파일이 잘 작동합니다.