【问题标题】:Generate Wadl for apache cxf为 apache cxf 生成 Wadl
【发布时间】:2013-09-25 13:20:31
【问题描述】:

有什么方法可以自动生成cxf的wadl文件吗?
我有一个类,它接受所有请求,如 @Path("/") 然后重定向到它的实现类。我想为它生成 wadl。这可能吗?
我已经完成了这个 http://{localhost}:8080/api/?_wadl 但我得到了

<resources base="http://{localhost}:8080/api">
    <resource path="/">
        <!--  Dynamic subresource  -->
        <resource path="/"/>
    </resource>
</resources>

【问题讨论】:

    标签: cxf wadl


    【解决方案1】:

    试试下面的 url,它应该可以工作,cxf 有这个能力自己生成 wadl。 http://{IP}:{PORT}/{PROJECT-CONTEXT}/{CXF SERVLET CONTEXT}/?_wadl

    例如在我的例子中是http://localhost:8080/demo-web/api/?_wadl

    【讨论】:

    • 我已经这样做了,但我正在为它获取动态子资源。
    • 您的实现类是使用 JAX-RS 注释进行注释,还是您在顶级类中使用 Path / 做出决定并将请求委托给相应的类?
    • 使用 Path / 在顶级类中做出决定,并将请求委托给各个类
    • 我不认为 cxf 能够为它们生成 wadl,因为实现类没有 jaxrs 注释
    【解决方案2】:

    我认为这是不可能的。你所做的是动态的,cxf 不知道请求将被定向到哪里。确保所有服务都有自己的路径,以便您可以为这些服务提供 wadl。

    【讨论】:

      【解决方案3】:

      我知道这有点老了,但它让我发疯了。 如果你没有返回一个对象作为你的子资源,这应该可以解决问题:

      JAXRSServerFactoryBean factory = new JAXRSServerFactoryBean();
      factory.setStaticSubresourceResolution(true);
      

      只需确保在设置服务 bean 之前启用静态子资源解析 :)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-12-21
        • 1970-01-01
        • 2019-04-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多