Джерси Производство конфликта типа СМИ
Я пробую Джерси в данный момент, а затемэтот ссылка для настройки веб-службы в NetBeans. У меня есть классы сущностей и мои REST-классы. Он работает для добавления, редактирования, удаления, запроса объектов (в данном случае объектов пользователей) из клиента javafx2.
Тем не менее, сейчас я пытаюсь добавить новый метод в мой веб-сервис для простой аутентификации. Сначала я добавил новый именованный запрос (Users.login) в файл Users.java:
@NamedQueries({
@NamedQuery(name = "Users.findAll", query = "SELECT u FROM Users u"),
@NamedQuery(name = "Users.login", query = "SELECT u FROM Users u WHERE u.username = :username AND u.password = :password"),
@NamedQuery(name = "Users.findById", query = "SELECT u FROM Users u WHERE u.id = :id"),
@NamedQuery(name = "Users.findByUserlevel", query = "SELECT u FROM Users u WHERE u.userlevel = :userlevel"),
@NamedQuery(name = "Users.findByDisabled", query = "SELECT u FROM Users u WHERE u.disabled = :disabled")
})
После этого я добавил следующий код в свой файл UsersFacadeREST.java (созданный Netbeans 7.2):
@GET
@Path("{username}/{password}")
@Produces({"application/xml", "application/json"})
public Users login(@PathParam("username") String username, @PathParam("password") String password) {
return em.createNamedQuery("login", Users.class)
.setParameter("username", username)
.setParameter("password", password)
.getSingleResult();
}
Тем не менее я получаю следующую ошибку при попытке развертывания веб-службы:
SEVERE: Producing media type conflict. The resource methods public entities.Users service.UsersFacadeREST.login(java.lang.String,java.lang.String) and public java.util.List service.UsersFacadeREST.findRange(java.lang.Integer,java.lang.Integer) can produce the same media type
Насколько я'Я новичок в этом, я понятия не имею, почему метод login () дает конфликт с findRange ()? Первый имеет 2 параметра String и дает объект Users, второй имеет 2 целочисленных параметра и возвращает объект List? Есть ли способ решить эту проблему, как ямне понадобятся несколько пользовательских запросов, добавленных в мой веб-сервис ...
Для завершения:
@GET
@Path("{from}/{to}")
@Produces({"application/xml", "application/json"})
public List findRange(@PathParam("from") Integer from, @PathParam("to") Integer to) {
return super.findRange(new int[]{from, to});
}
Код в суперклассе (AbstractFacade.java)
public List findRange(int[] range) {
javax.persistence.criteria.CriteriaQuery cq = getEntityManager().getCriteriaBuilder().createQuery();
cq.select(cq.from(entityClass));
javax.persistence.Query q = getEntityManager().createQuery(cq);
q.setMaxResults(range[1] - range[0]);
q.setFirstResult(range[0]);
return q.getResultList();
}