REST CXF and Spring cxf-extension-jaxrs-binding File not found exception?

16,384

Solution 1

According to this, this file is no longer required for cxf > 2.4.x.

Solution 2

I am also getting the exact same error. The error that I am getting is -

IOException parsing XML document from class path resource [META-INF/cxf/cxf-extension-jaxrs-binding.xml]; 
nested exception is java.io.FileNotFoundException: 
class path resource [META-INF/cxf/cxf-extension-jaxrs-binding.xml] cannot be opened because it does not exist.

Even I read that the newer versions of cxf don't need anything other than cxf-rt-frontend-jaxrs. After I got these errors, I have added following dependencies in my pom file but they were of no help -

<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-frontend-jaxrs</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-extension-providers</artifactId>
    <version>2.6.2</version>
</dependency>
<dependency>
    <groupId>org.apache.cxf</groupId>
    <artifactId>cxf-rt-rs-extension-search</artifactId>
    <version>2.6.2</version>
</dependency>

I also do not understand the reason why almost all the tutorials detailing steps for building a REST service using CXF want you to include following 3 lines in spring config (when I can't possibly locate these files anywhere) -

<import resource="classpath:META-INF/cxf/cxf.xml"/>
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
<import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>

Solution 3

Try removing the line that imports cxf-extension-jaxrs-binding.xml. The other 2 xml files are in the cxf-X.Y.Z.jar. For me that is cxf-2.7.7.jar.

Share:
16,384
Admin
Author by

Admin

Updated on June 20, 2022

Comments

  • Admin
    Admin almost 2 years

    i'm trynig to develop a REST web service using CXF 2.6.0 and spring 2.5.6 my CXF maven dependancy in the pom.xml are :

    <dependency>
      <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-providers</artifactId>
      <version>2.6.0</version>
       </dependency>
    
    <dependency>
      <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-extension-search</artifactId>
      <version>2.6.0</version>
    </dependency>
    

    I'am using Spring 2.5.6 and i have declared my web service in the applicationcontext.xml spring file :

    <jaxrs:server id="restContainer" address="/sav">
        <jaxrs:serviceBeans>
            <ref bean="wssav"/>
        </jaxrs:serviceBeans>
    </jaxrs:server>
    
     <import resource="classpath:META-INF/cxf/cxf.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"/>
    <import resource="classpath:META-INF/cxf/cxf-servlet.xml"/>
    

    And i have declared my Web service into web.xml file by this code :

    <servlet>
        <servlet-name>CXFServlet</servlet-name>
    
        <servlet-class>
            org.apache.cxf.transport.servlet.CXFServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>CXFServlet</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>
    

    when i deploy my project on tomcat i got this exception for the second file of import in applicationcontext.xml file :

        java.io.FileNotFoundException: class path resource [META-INF/cxf/cxf-extension-jaxrs-binding.xml] cannot be opened because it does not exist