休息DSL restConfiguration方式从jetty.xml动态注入Jetty端口

时间:2018-04-06 23:22:40

标签: rest apache-camel jetty dsl

可以动态注入jetty.xml配置文件中的端口集吗? 我有多个jboss fuse容器正在运行,每个容器都有不同的端口配置,从rmiRegistryPort到jetty.port。我希望能够从jetty.xml中注入端口值。如果我使用camel-jetty,我是否需要担心如果从这个文件中自动设置端口???

        restConfiguration() 
            .component("jetty")         
            .host("localhost")          
            .port(getPort())            
            .scheme("https")            
            .bindingMode(RestBindingMode.json)  
            .jsonDataFormat("json-jackson")     
            .dataFormatProperty("prettyPrint", "true"); 

3 个答案:

答案 0 :(得分:0)

我不了解自己,但Camel REST DSL Docs说:

  

如果使用servlet组件,则此处配置的端口号不适用,因为正在使用的端口号是servlet组件正在使用的实际端口号,例如,如果使用Apache Tomcat,则使用tomcat HTTP端口,如果使用Apache它是Karaf的HTTP服务,默认使用端口8181等。虽然在这种情况下设置端口号,允许工具和JMX知道端口号,所以建议将端口号设置为数字servlet引擎使用的。

根据此说明,我假设

  • Camel使用实际的jetty HTTP端点
  • 您在restConfiguration中设置的任何端口都会被jetty HTTP端点
  • 忽略
  • 如果您在restConfiguration
  • 中设置了正确的端口,则JMX和其他工具只能正常工作
  • 您必须为restConfiguration(无自动魔法)
  • 提供正确的码头端口

答案 1 :(得分:0)

您可以使用application.properties中的端口值并读取它以设置值。

答案 2 :(得分:0)

感谢Victor,是的,...我只是想知道Jetty服务器的封面是否有一些魔法,我想我需要对此进行测试。 因为在etc / jetty.xml下有一个jetty.xml配置文件,它定义了jetty配置...但是在每个例子中我都看到了一个端口的定义......看起来它有可能启用???但我不知道。原因是我有8个不同的JBoss Fuse容器,它们都有不同的etc / configs来防止端口冲突。

inside jetty.xml
        <!-- =========================================================== -->
        <!-- Special server connectors -->
        <!-- =========================================================== -->
        <!-- This is a sample for alternative connectors, enable if needed -->
        <!-- =========================================================== -->
        <!--
        <Call name="addConnector">
                <Arg>
                        <New class="org.eclipse.jetty.server.ServerConnector">
                                <Arg name="server">
                                        <Ref refid="Server" />
                                </Arg>
                                <Arg name="factories">
                                        <Array type="org.eclipse.jetty.server.ConnectionFactory">
                                                <Item>
                                                        <New class="org.eclipse.jetty.server.HttpConnectionFactory">
                                                                <Arg name="config">
                                                                        <Ref refid="httpConfig" />
                                                                </Arg>
                                                        </New>
                                                </Item>
                                        </Array>
                                </Arg>
                                <Set name="host">
                                        <Property name="jetty.host" default="localhost" />
                                </Set>
                                <Set name="port">
                                        <Property name="jetty.port" default="8285" />
                                </Set>
                                <Set name="idleTimeout">
                                        <Property name="http.timeout" default="30000" />
                                </Set>
                                <Set name="name">jettyConn1</Set>
                        </New>
                </Arg>
        </Call>