【问题标题】:Accessing Camel/Jetty instance under akka-camel actor在 akka-camel actor 下访问 Camel/Jetty 实例
【发布时间】:2013-12-04 23:09:58
【问题描述】:

我有一个基本的 Jetty 实例,它使用带有 akka 和 scala 的 akka-camel 库。例如:

class RestActor extends Actor with Consumer {
    def endpointUri = "jetty:https://0.0.0.0:443/"
    def receive = {
        case msg: CamelMessage => {
            ...
        }
        ...
    }
    ...
}

我想将 SslSocketConnector 绑定到底层码头实例,以便我可以加载我的 SSL 证书,但我遇到的问题是我无法弄清楚如何处理底层码头实例来调用 addConnector()功能。我的一个想法是将 Camel 特征添加到我的类中(例如:RestActor 使用 Camel 的 Consumer 扩展 Actor)以访问 Camel 的“context”变量,但编译器抱怨这样做会覆盖“context”变量,该变量也存在于阿卡的演员特质。

【问题讨论】:

    标签: scala jetty apache-camel akka


    【解决方案1】:

    以下代码似乎提供了对底层 Camel 对象的访问。

    class RestActor extends Actor with Consumer {
        val camel = CamelExtension(context.system).context
        def endpointUri = "jetty:https://0.0.0.0:443/"
        def receive = {
            case msg: CamelMessage => {
                ...
            }
            ...
        }
        ...
    }
    

    编辑:我包含使用 akka 的 scala akka-camel 库成功运行 Jetty w/SSL 的最终代码,供任何人寻找有关如何在未来实现这一点的示例。

    class RestActor extends Actor with Consumer {
    
        val ksp: KeyStoreParameters = new KeyStoreParameters();
        ksp.setResource("/path/to/keystore");
        ksp.setPassword("...");
        val kmp: KeyManagersParameters = new KeyManagersParameters();
        kmp.setKeyStore(ksp);
        val scp: SSLContextParameters = new SSLContextParameters();
        scp.setKeyManagers(kmp);
        val jettyComponent: JettyHttpComponent = CamelExtension(context.system).context.getComponent("jetty", classOf[JettyHttpComponent])
        jettyComponent.setSslContextParameters(scp);
    
        def endpointUri = "jetty:https://0.0.0.0:8443/"
        def receive = {
            case msg: CamelMessage => {
                ...
            }
            ...
        }
        ...
    }
    

    【讨论】:

      猜你喜欢
      • 2015-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-18
      • 1970-01-01
      • 2015-03-20
      • 2015-09-19
      • 2014-04-19
      相关资源
      最近更新 更多