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 才能应用更改。