2011-12-16 47 views
12

我正在嘗試將Apache CXF與Spring集成以創建REST風格的Web服務。但在部署應用程序時,我收到以下例外情況。無法找到XML模式命名空間的Spring NamespaceHandler [http://cxf.apache.org/jaxrs]

SEVERE: Context initialization failed 
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHandler for XML schema namespace [http://cxf.apache.org/jaxrs] 
Offending resource: ServletContext resource [/WEB-INF/beans.xml] 

這是我的beans.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:jaxrs="http://cxf.apache.org/jaxrs" 
     xsi:schemaLocation=" 
     http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
     http://cxf.apache.org/jaxrs http://cxf.apache.org/schemas/jaxrs.xsd"> 

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

</beans> 

,我的pom.xml的是

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.maventest</groupId> 
    <artifactId>Lab</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Lab Maven Webapp</name> 
    <url>http://maven.apache.org</url> 
    <properties> 
     <javac.version>1.6</javac.version> 
     <spring.version>3.0.3.RELEASE</spring.version> 
     <junit.version>4.5</junit.version> 
     <servlet-api.version>2.5.0</servlet-api.version> 
     <cxf.version>2.4.0</cxf.version> 
    </properties> 

    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 

     <dependency> 
      <groupId>org.apache.cxf</groupId> 
      <artifactId>cxf-rt-frontend-jaxws</artifactId> 
      <version>${cxf.version}</version> 
     </dependency> 

     <dependency> 
     <groupId>org.apache.cxf</groupId> 
     <artifactId>cxf-rt-transports-http</artifactId> 
     <version>${cxf.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.ws.rs</groupId> 
     <artifactId>jsr311-api</artifactId> 
     <version>1.1</version> 
    </dependency> 


     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>org.springframework.web</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>org.springframework.web.servlet</artifactId> 
      <version>${spring.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.xmlbeans</groupId> 
      <artifactId>xmlbeans</artifactId> 
      <version>2.4.0</version> 
     </dependency> 

     <dependency> 
      <groupId>org.codehaus.jackson</groupId> 
      <artifactId>jackson-mapper-asl</artifactId> 
      <version>1.9.2</version> 
     </dependency> 

     <dependency> 
      <groupId>net.sf.kxml</groupId> 
      <artifactId>kxml2</artifactId> 
      <version>2.2.2</version> 
     </dependency> 

    </dependencies> 
    <build> 
    <finalName>Lab</finalName> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>maven-jetty-plugin</artifactId> 
       <version>6.1.21</version> 
       <configuration> 
        <scanIntervalSeconds>10</scanIntervalSeconds> 
        <scanTargets> 
         <scanTarget>src/main/webapp/WEB-INF</scanTarget> 
         <scanTarget>src/main/webapp/WEB-INF/web.xml</scanTarget> 
        </scanTargets> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

我不知道我錯過了什麼罐子或配置。

我加入了CXF-RT-前端-JAXRS罐子,但仍然得到同樣的異常

+0

你有沒有想過這個?我面臨同樣的問題,並且我已經包含了cxf-rt-frontend-jaxws和cxf-rt-frontend-jaxrs maven dependencies – 2016-06-07 22:18:57

回答

20

按本guide,你可能要嘗試添加在你的POM以下依賴。

<dependency> 
    <groupId>org.apache.cxf</groupId> 
    <artifactId>cxf-rt-frontend-jaxrs</artifactId> 
    <version>${cxf.version}</version> 
</dependency> 
相關問題