【问题标题】:Using environment variables in camel.xml to configure endpoints在 camel.xml 中使用环境变量来配置端点
【发布时间】:2014-10-24 10:08:55
【问题描述】:

我的 camel.xml 中有一个 cxf 端点配置,如下所示:

<cxf:cxfEndpoint id="callbackInbound"
      serviceClass="ch.axpo.emis.v1.timeseriesservice.Callback"
      wsdlURL="wsdl/timeseries.wsdl" endpointName="tss:CallbackPort"
      address="http://somehost.com:9090/CallbackService" serviceName="tss:CallbackService"/>

在我的一条路线中,我这样称呼这个端点:

.to("cxf:bean:callbackInbound?dataFormat=PAYLOAD")

因此,现在我希望能够使用系统变量为不同的环境(DEV、TEST、PROD...)配置地址,而不是使用固定地址 (http://somehost.com:9090/CallbackService)。这是因为我使用 JBoss 7 作为骆驼的运行时环境,并且有一种非常简单的方法可以使用 JBoss 添加系统变量。 有没有办法做到这一点?或者有没有更好的方法在不同的环境中配置 cxf 端点?

谢谢, 斯文

【问题讨论】:

    标签: variables configuration apache-camel environment endpoint


    【解决方案1】:

    您可以使用properties components 并像这样定义 cxfEndpoint

    System.setProperty("environment", "junit");
    
    <cxf:cxfEndpoint id="routerEndpoint" address="{{router.address}}"
    serviceClass="org.apache.camel.component.cxf.HelloService"/>
    

    你可以像这样定义属性文件

    router.address={{{{environment}}.router.address}}
    
    # LOCAL SERVER
    junit.router.address=junit
    
    # LOCAL SERVER
    local.router.address=local
    
    # TEST
    test.router.address=test
    
    # PROD
    prod.router.address=prod
    

    【讨论】:

      猜你喜欢
      • 2013-05-27
      • 1970-01-01
      • 2014-09-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-25
      • 2017-09-06
      相关资源
      最近更新 更多