2015-10-20 43 views
0

POM:REST應用程式澤西2 ClassNotFoundException的:com.sun.jersey.spi.container.servlet.ServletContainer

<dependency> 
    <groupId>org.glassfish.jersey.containers</groupId> 
    <artifactId>jersey-container-servlet</artifactId> 
    <version>${jersey.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.core</groupId> 
    <artifactId>jersey-server</artifactId> 
    <version>${jersey.version}</version> 
</dependency> 
<dependency> 
    <groupId>org.glassfish.jersey.media</groupId> 
    <artifactId>jersey-media-moxy</artifactId> 
    <version>${jersey.version}</version> 
</dependency> 

其中jersey.version = 2.5。

我使用嵌入式碼頭(maven-jetty-plugin)來啓動REST應用程序。當執行mvn jetty:run時,會發生以下異常。

2015-10-21 00:21:32.883:INFO::jetty-6.1.26 
2015-10-21 00:21:33.478:WARN::Failed startup of context [email protected]{/promat,C:\wses\promat\src\main\webapp} 
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:244) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:230) 
    at org.mortbay.jetty.webapp.WebAppClassLoader.loadClass(WebAppClassLoader.java:401) 
... 
... 

只要我使用1.8依賴關係的澤西島 - 沒有問題。 這是沒有問題的依賴項。

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

<dependency> 
    <groupId>com.sun.jersey</groupId> 
    <artifactId>jersey-json</artifactId> 
    <version>1.8</version> 
</dependency> 

缺失的神器是什麼?擁有1.8版本的Jersey服務器擁有ServletContainer類。

+0

你不需要任何其他的依賴。儘管@MatthewMadson的回答是正確的。我想它可能不會完全解決問題。我的猜測是你在你的web.xml中使用了所有的Jersey 1.x配置。 –

+0

爲了幫助遷移,我建議你發佈你的web.xml。 –

回答