2016-08-04 1 views
0

나는 프로젝트를 컴파일 할 수없는 이유를 좁히고있다. 이클립스에서 끝난 api REST가 될 메이븐 프로젝트입니다. 아이디어는 tomcat v6에서 실행됩니다.com.sun.jersey.spi.container.servlet.ServletContainer가 문제가되지 않도록 저지를 구성하는 방법은 무엇입니까?

java.lang.ClassCastException: com.sun.jersey.spi.container.servlet.ServletContainer cannot be cast to javax.servlet.Servlet 내가 저지 - 서블릿을 제거 시도했습니다 때 내가 본 이후 : 나에게 다음과 같은 오류를 제공

<!-- Jersey --> 
    <dependency> 
    <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.19</version> 
    </dependency> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-servlet</artifactId> 
     <version>1.19</version> 
    </dependency> 

:

나는 pom.xml 파일에이 구성을했다 사람들은 문제를 만드는 것이 말하고 난 단지 저지 - 서버가 필요하고 그래서, 난이 얻을 : 나는이 많은 arround를 엉망으로 봤는데

java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer 

구성, 다른 솔루션을 따르려고하지만 문제가 여기에 있다고 생각합니다. 아무도이 제대로 구성하는 방법을 말해 줄래?

내 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/xsd/maven-4.0.0.xsd"> 


<modelVersion>4.0.0</modelVersion> 
    <groupId>com.CC.enterprise.rest.jersey</groupId> 
    <artifactId>CC-HelloWorld</artifactId> 
     <version>0.0.1-SNAPSHOT</version> 

<distributionManagement> 
    <!-- Will be used when it is NOT a snapshot version --> 
    <repository> 
     <id>releases</id> 
     <name>RepositoryProxy</name> 
     <url>edited</url> 
    </repository> 
    <!-- Will be used when IT IS a snapshot version --> 
    <snapshotRepository> 
     <id>snapshots</id> 
     <name>RepositoryProxy</name> 
     <url>edited</url> 
    </snapshotRepository> 
</distributionManagement> 


<dependencies> 

    <!-- Jersey --> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-server</artifactId> 
     <version>1.8</version> 
    </dependency> 

    <!-- MongoDB --> 
    <dependency> 
     <groupId>org.mongodb</groupId> 
     <artifactId>mongodb-driver</artifactId> 
     <version>3.2.2</version> 
    </dependency> 

    <!-- JSON --> 
    <dependency> 
     <groupId>com.sun.jersey</groupId> 
     <artifactId>jersey-json</artifactId> 
     <version>1.9</version> 
    </dependency> 

    <!-- Servlet API --> 
    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
    </dependency> 

</dependencies> 

내 web.xml의 :

<?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> 
    <display-name>Restful Web Application</display-name> 



<servlet> 
    <servlet-name>jersey-helloworld-serlvet</servlet-name> 
    <servlet-class> 
     com.sun.jersey.spi.container.servlet.ServletContainer 
    </servlet-class> 
    <init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.CC.enterprise.rest.jersey</param-value> 
    </init-param> 
    <init-param> 
     <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> 
     <param-value>true</param-value> 
    </init-param> 
    <load-on-startup>1</load-on-startup> 
    </servlet> 
    <servlet-mapping> 
    <servlet-name>jersey-helloworld-serlvet</servlet-name> 
    <url-pattern>/rest/*</url-pattern> 
    </servlet-mapping> 
</web-app> 

답변

4

jersey-server 의존성을 제거하십시오. 단지 jersey-servlet 의존성 사용

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-servlet</artifactId> 
    <version>1.19</version> 
</dependency> 

을 그리고 com.sun.jersey 의존성이 동일한 버전을 사용하고 있는지 확인. 서면 작성 당시 가장 최근 버전은 1.19.1입니다. 이 새로운 프로젝트가 있다면

이전 저지 1.x에서을 잊고 저지 2.X에 대한 이동합니다.

+0

이렇게하면 얻을 수 있습니다. java.lang.ClassNotFoundException : com.sun.jersey.spi.container.servlet.ServletContainer. jersey-json을 제외하면 더 이상 com.sun.jersey 종속성이 없습니다. 그것은 새롭지 않습니다.이 구성으로 작동하는 다른 이전 버전을 기반으로하므로이 아이디어에 너무 많은 시간을 투자하지 않아야했습니다. 하아! –

+0

@monkeyintern'com.sun.jersey.spi.container.servlet.ServletContainer' 클래스는'jersey-servlet' 의존성에 포함되어 있습니다. 그 오류가 없어야합니다. –

+0

나는 무엇을해야할지, 어디에서보아야할지 모르겠습니다. 다음 형식으로 실행 : 서버가이 경우 작동해야합니다. .war 필요 없음? 가능한 모든 해결책을 확인했습니다. Tch. –

관련 문제