【问题标题】:Error 500 when trying to get WADL of jax-rs service尝试获取 jax-rs 服务的 WADL 时出现错误 500
【发布时间】:2016-01-15 13:51:59
【问题描述】:

在我们的项目中,我们将两个 JAX-RS 服务部署到了 Karaf 容器中。当我尝试通过服务链接 (http://localhost:8181/cxf/myservice1?_wadl) 获取 WADL 时,出现此错误:

原因:

javax.xml.transform.TransformerFactoryConfigurationError: Provider org.apache.xalan.processor.TransformerFactoryImpl 未在 javax.xml.transform.TransformerFactory.newInstance(TransformerFactory.java:121)

认为第二个服务没有此类问题并检索正确的 WADl (http://localhost:8181/cxf/myservice2?_wadl):

<application xmlns="http://wadl.dev.java.net/2009/ xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <grammars/> 
    <resources base="http://localhost:8181/cxf/dictionary">
         <resource path="/">
             <resource path="{name}">
                 <param name="name" style="template" type="xs:string"/>
                 <method name="GET">.....

我们使用 CXF 3.1.3。 这两个服务都是通过蓝图配置的,但是在这个地方所有的配置都是一样的,这就是为什么我不认为这里会出现问题。

据我了解,在 CXF 的情况下,WADL 默认生成只是为了将 JAX-RS 服务链接附加到“?_wadl”,这意味着我无法手动配置它,不是吗?

感谢您提出任何需要查看的建议。谢谢

【问题讨论】:

    标签: java rest cxf apache-karaf wadl


    【解决方案1】:

    为了使 wadl 链接正常工作,您需要添加 cxf 服务描述库。

    maven 依赖项是:

    <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-service-description</artifactId>
            <version>3.1.3</version>
    </dependency>
    

    【讨论】:

    • 感谢您的建议,但在 Karaf 容器中,我将 CXF 安装为一个整体功能,这意味着包括您提到的这个库在内的所有库都已启动并运行。
    • 你的建议促使我去挖掘我以前看过的其他方式。再次感谢
    • 感谢 Gunnar,通过添加此依赖项,我可以访问 ?_wadl URL。
    【解决方案2】:

    我想通了,如果其他人会遇到这样的问题,我想与社区分享。

    原来 WADL 生成需要Xalan XSLT 处理器来进行 xml 转换。由于 CXF 在功能集中不包含该库,因此需要将其作为单独的包安装。 Xalan 还依赖于Apache Commons BCEL,这意味着捆绑 BCEL 也需要添加到 Karaf(或任何其他 OSGI 容器,如果存在的话)。就我而言,功能摘录如下所示:

    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.xalan/2.7.1_7</bundle>
    <bundle dependency="true">mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.bcel/5.2_4</bundle>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多