1

我正在使用 CXF 中的注释方法通过 Web 服务调用创建不同的功能。出于某种原因,我所有的 URL 路径都来自{hostname}/services/status/{my_path}. 我正在使用这样的注释方法:

    @Path("/{type:(?i)index}")
    public IndexServiceResource getIndexServiceResource() {
        return new IndexServiceResource(this.handlers);
    }

我希望@Path直接从而{hostname}不是{hostname}/services/status。这将设置在哪里?

4

2 回答 2

3

您可以将处理 cxf Web 服务的 CXFServlet“/services”绑定到 web.xml 中的主上下文“/”。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
   <display-name>cxf</display-name>
   <description>cxf</description>
   <servlet>
        <servlet-name>cxf</servlet-name>
        <servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>cxf</servlet-name>
        <url-pattern>/services/*</url-pattern>
    </servlet-mapping>
</web-app>

尝试将 url-pattern 从“/services/*”更改为“/*”。

但是我不确定是否有任何方法可以将“/status”更改为也绑定到主上下文“/*”。

当然,如果您的请求通过 Apache 代理,那么可以设置映射,例如“ http://my.domain ”->“ http://internal.server/services/status ”。但这是在您的代码之外完成的。

于 2013-08-27T06:23:11.563 回答
0

我想由于您的 Jaxrs 服务器配置而需要“状态”(虽然我不确定)。请检查您的上下文文件中的 jaxrs 服务器配置。

<jaxrs:server id="restContainer" address="/">
    <jaxrs:serviceBeans>

address 属性是否包含 status ?

于 2013-08-27T06:59:22.593 回答