OSGI Blueprint jaxrs服务器端点配置 - 如何配置地址?

时间:2014-08-14 18:49:50

标签: java osgi jax-rs blueprint-osgi

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

<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和机器名?或者只是具体的端口?或者我是否必须对机器名称进行硬编码或将其合并到配置文件中并将其强制为机器名称?

1 个答案:

答案 0 :(得分:3)

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

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