2015-10-20 2 views
0

РОМ:REST приложение с Jersey 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 был класс ServletContainer.

+0

Вам не нужны никакие другие зависимости. Хотя ответ @MatthewMadson правильный. Я предполагаю, что это может не полностью решить проблему. Я предполагаю, что вы используете всю конфигурацию Jersey 1.x в своем web.xml. –

+0

Для справки по миграции я предлагаю вам опубликовать ваш web.xml. –

ответ

1

Похоже, класс был перемещен:

org.glassfish.jersey.servlet.ServletContainer

Хотя я не проверен, если они имеют ту же семантику, так что может быть дополнительная миграция необходимых шагов.

Смежные вопросы