在 karaf 中配置 cxf 服务列表

Sar*_*mar 3 java spring cxf apache-camel apache-karaf

它是使用camel-cxf 部署在Apache Karaf 上的Web 服务。我能够在 URL localhost:8181/cxf 中看到 cxf 服务列表,其中部署了一些 rest 和 soap 服务。

问题是只要任何请求带有关键字“服务”,它就会返回服务列表。例如 url http://localhost:8181/abcd/services返回 cxf 服务列表页面而不是处理实际请求。

我从http://cxf.apache.org/docs/jaxrs-services-description.html 了解到这是因为 CXFServet 的 service-list-path 的默认值是 services。

这是我的问题。如果我想覆盖它,我应该在 etc/org.apache.cxf.osgi.cfg 中设置这个属性。这个 cfg 文件不在我的 karaf 的 etc 文件夹下。如果我手动创建此属性文件,需要采取哪些步骤?我需要安装哪些功能?或者创建这个配置文件就足够了?

感谢你的帮助 !

小智 5

应该没有额外的安装要求,只需创建一个新文件etc/org.apache.cxf.osgi.cfg

您可能感兴趣的三个设置:

org.apache.cxf.servlet.context = /mycxf
org.apache.cxf.servlet.service-list-path = /myservices
org.apache.cxf.servlet.hide-service-list-page = false
Run Code Online (Sandbox Code Playgroud)

CXF 服务列表的默认 URL 通常类似于http://localhost:8181/cxf/services,URL 上面的更改将变为http://localhost:8181/mycxf/myservices

如果您从 false(默认值)更改为 true,则您的服务将被隐藏,而您将看到一个页面,说明未找到服务。

因为这些是初始化设置,您需要关闭 Karaf 才能应用更改。