У меня проблемы с использованием Restful Webservices с использованием реализации Джерси. В документации написано, что я должен загрузить это: Jersey JAX-RS 2.0 RI bundle, разархивировать его и добавить банки в папку WEB-INF/lib . Эти банки являются:Restful Ошибка сервера JAX-RS
- Джерси-клиент
- Джерси-общего
- Джерси-контейнер сервлет
- Джерси-контейнер-сервлет-жильный
- Джерси-сервер
Если я делаю это, я всегда получаю следующее исключение:
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
После некоторого исследования выяснилось, что я должен добавить jersey-servlet-1.12.jar вместо добавления фляг из источника для загрузки, размещенного выше. Поэтому я сделал это. Я добавил это в моей web.xml
<servlet>
<servlet-name>JAX-RS Servlet</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JAX-RS Servlet</servlet-name>
<url-pattern>/jaxrs/*</url-pattern>
</servlet-mapping>
И я реализовал небольшой тест-класс:
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.TypedQuery;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import de.hof.university.spj.model.Movie;
@Path("/test")
public class Test {
@GET
@Produces("application/json; charset=UTF-8")
public List<Movie> getMovieList() {
EntityManagerFactory factory = Persistence.createEntityManagerFactory("SPJUnit");
EntityManager em = factory.createEntityManager();
TypedQuery<Movie> query = em.createQuery("Select m FROM Movie m WHERE m.movieID = 4204", Movie.class);
return query.getResultList();
}
}
Когда я теперь называем http://localhost:8080/MyApp/jaxrs/test
я получаю эту ошибку:
HTTP Status 500 - Internal Server Error. The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
I Не знаю, как правильно использовать реализацию трикотажа.
Потому что я уже это сделал! javax.annotation, javax.inject, javax.ws.rs уже присутствует в моем javaee-api-6.0.jar, включенном в мой проект. и если я использую пример web.xml из руководства по началу работы, проект даже не был подготовлен из-за этого: java.lang.ClassNotFoundException: javax.ws.rs.ProcessingException. Дополнительную информацию см. На странице server.log. – Mulgard