【问题标题】:OSGI Blueprint jaxrs server endpoint configuration - how to configure address?OSGI Blueprint jaxrs 服务器端点配置 - 如何配置地址?
【发布时间】:2014-08-14 18:49:49
【问题描述】:

我有一个使用 OSGI(在 Karaf 中运行)设置的 REST 服务。

<jaxrs:server address="http://localhost:9001/rest" id="myFileService" >
        <jaxrs:serviceBeans>
            <ref component-id="FileServicesImpl" />
        </jaxrs:serviceBeans>
</jaxrs:server>

当我浏览到http://localhost:8181/cxf 时,如果列出了我的服务,我可以成功连接到http://localhost:9001/rest 上的服务。如果我去http://MyMachineName:8181/cxf,我会得到服务列表,但如果我去http://MyMachineName:9001/rest,则找不到地址。

不管怎样,当我使用 MyMachineName 浏览到 /cxf 链接时,它仍然将端点列为 localhost。

有没有办法在蓝图配置中配置端点地址,以便它同时响应 localhost 和机器名称?或者只是特定的端口?还是我必须对机器名称进行硬编码或将其合并到配置文件中并将其强制为机器名称?

【问题讨论】:

    标签: java osgi jax-rs blueprint-osgi


    【解决方案1】:

    这里有两个选择。第一个是使用http://0.0.0.0:9001/rest 作为网址。这将告诉 cxf 绑定到服务器拥有的所有 IP 地址。

    我更喜欢的另一个选项是将用户 /rest 作为 url。在这种情况下,cxf 将绑定到由 karaf 中的 pax web 实现的 OSGi http 服务。因此,您可以在 pax Web 级别设置端口并最终设置 https 设置。

    【讨论】:

    • 谢谢!从我看到的一些示例中,我只是想知道/rest,但最终还是选择了http://0.0.0.0。这似乎工作正常,在这一点上,:8181/cxf 的默认服务列表显式列出 0.0.0.0 地址而不是推断它,这主要是一个烦恼,但这是我的 :-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-17
    • 1970-01-01
    • 2015-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-19
    相关资源
    最近更新 更多