Так что я создаю небольшой отдых api с java, используя Jersey 2.23.2. Однако я столкнулся с проблемой, я не могу правильно указать сервлет в файле web.xml. Это как мои файлы выглядеть следующим образом:Мигрировали в джерси 2.x, и теперь я получаю исключение контейнера для сервлетов
pom.xml
<dependencies>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-client</artifactId>
<version>2.23.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet-core</artifactId>
<version>2.23.2</version>
<scope>provided</scope>
</dependency>
</dependencies>
web.xml
...
<servlet>
<servlet-name>WebService</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>api-mashup-api.API</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>WebService</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
API.java
package api;
@Path("/v1")
public class API {
private Controller controller;
public API(){
controller = new Controller();
}
@GET
@Produces(MediaType.TEXT_HTML)
public String print1() {
return "Please specify what resource you need.";
}
/**
* Prints to the screen if we are in /v1/foo
*
* @return
*/
@GET
@Path("/foobar")
@Produces(MediaType.TEXT_HTML)
public String print2() {
return "Please specify what resource you need.";
}
}
Моей структуры папок проекта выглядит следующим образом:
api-mashup-api/Java Resources/src/api/API.java
я использовал Джерси 1.x до и после этого я мигрировал 2.x и теперь я не уверен, что положить в Params сервлета в Интернете. XML. Когда я пытаюсь запустить API.java на моем сервере Tomcat я получаю следующее исключение:
SEVERE: Servlet [WebService] in web application [/api-mashup-api] threw load() exception
java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
я могу достигнуть моего index.html просто отлично, хотя, так что сервер работает, но не API часть. Не уверен, что делать здесь. Очевидно, что что-то не так с частью сервлета.
EDIT-Вещи, которые я попробовал:
Добавлена API.java к парам-valye в web.xml
Посмотрел на Basic full configuration for Jersey on Tomcat in eclipse и реализовали решение. Теперь при запуске api сервер не будет разбиваться, но я не могу найти какой-либо ресурс, например, с http://localhost:8080/api-mashup-api/v1.
- Удалена метка области из зависимости контейнера сервлетов.
Вы можете попробовать ИЗА Парам-значение>? Кроме того, добавьте случай API.java, это не сработает. –
Veeram
Пробовали оба, они дали мне тот же результат. – dikaJoe
К сожалению, я имею в виду добавить класс API.java в сообщение. – Veeram