Search code examples
proxyapache-cameljbossfusecamel-http

Global configuration of http proxy in camel


So far, I have learned to ways to set HTTP proxy with camel.

  • First one is to append proxy information with destination URI

    <to uri="http://sample.com?proxyAuthHost=proxy.example.com&amp;proxyPort=8080"/>
    
  • Other approach is setting proxy global to CamelContext

    <properties>
        <property key="http.proxyHost" value="proxy.example.com"/>
        <property key="http.proxyPort" value="8080"/>
    </properties>
    

    Other than these approaches, is there any way by which I can configure proxy globally so that, I don't have repeat this procedure for each URI or for each CamelContext? For example, if I configure proxy in a properties file, how can I use it(Other than using property using {{key}} approach)?


Solution

  • You should edit the setenv file of Karaf, located in bin/ folder under your JBoss Fuse installation. In that file, add the properties linked by Claus' answer to EXTRA_JAVA_OPTS variable.

    On Linux edit bin/setenv

    EXTRA_JAVA_OPTS="-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800"
    export EXTRA_JAVA_OPTS
    

    On Windows edit bin/setenv.bat

    SET EXTRA_JAVA_OPTS=-Dhttp.proxyHost=10.0.0.100 -Dhttp.proxyPort=8800
    

    Then start JBoss Fuse, those options will be added to Java command line by bin/fuse script.

    bin/fuse script calls bin/karaf which imports such variable from bin/setenv.