如何覆盖CXF服务列表URL?

时间:2011-09-20 18:04:42

标签: cxf talend apache-karaf

我的webservice有一个REST端点URL,例如/ myapp / admin / services。如果我设置org.apache.cxf.servlet.hide-service-list-page=false,则我的URL被CXF服务列表劫持。发生这种情况是因为列表URL在org.apache.cxf.transport.servlet.ServletController中是 relative

好的,好的,所以我不应该在我的网址结构中使用“服务”这个短语。 Mea culpa。但现在我该如何解决这个问题呢?我想覆盖ServletController中的“/ services”默认值。我只需要我的容器来调用该类的setServiceListRelativePath(),但我无法弄清楚如何。我想有一些神奇的Spring片段可以做到这一点吗?

如果重要的话,我正在使用捆绑在Talend Service Factory中的CXF。

2 个答案:

答案 0 :(得分:0)

(将上面的评论转化为答案,并且因为TSF不再存在而进行现代化)

在Karaf下,将以下内容添加到etc / org.apache.cxf.osgi.cfg:“org.apache.cxf.servlet.service-list-path = / desired / path”

答案 1 :(得分:0)

您可以在 web.xml 中尝试此操作以覆盖CXF服务列表路径

<init-param>
  <param-name>service-list-path</param-name>
  <param-value>/*</param-value>
</init-param>