Получить HttpServletRequest в приложении Jax Rs/Appfuse?

Я создал базовую оболочку приложения с помощью AppFuse и следовал руководству по AppFuse , чтобы создать простую службу RESTful с Джакс -RS. Это прекрасно работает. Вызов http://localhost:8080/services/api/personsвозвращает коллекцию объектов Person в виде строки в формате Json с правильными данными.

Теперь я хотел бы получить доступ к объектам ServletRequestи ServletResponseиз службы RESTful, предоставленной Appfuse (, чтобы использовать другую библиотеку, для которой требуются эти объекты).

Я думаю, что это можно сделать, добавив аннотацию @Context, например. после этого сообщения StackOverflow и этого сообщения на форуме .

Но если я добавлю тег @Context (см. ниже), он компилируется нормально, но выдает исключение при перезапуске сервера (прикрепляется внизу).

Вот объявление@WebService:

@WebService
@Path("/persons")
public interface PersonManager extends GenericManager {
    @Path("/")
    @GET
    @Produces(MediaType.APPLICATION_JSON)
    List read();
   ...
}

А вот класс реализации, в котором, я думаю, я бы назвал аннотацию @Context:

@Service("personManager") 
public class PersonManagerImpl extends GenericManagerImpl implements PersonManager { 
    PersonDao personDao; 
    @Context ServletRequest request; // Exception thrown on launch if this is present 
    @Context ServletContext context;  // Exception thrown on launch of this is present 
   ... 
    } 

Надеюсь, я упустил что-то простое, либо что-то, что нужно включить, чтобы заставить его работать, либо реализовать что получение ServletRequest невозможно, потому что... Любые подсказки приветствуются.

Я запускаю это на Tomcat в IntelliJ.

=== EXCEPTION STACK TRACE (Truncated)===

Caused by: org.springframework.beans.PropertyBatchUpdateException; nested PropertyAccessExceptions (1) are: 
PropertyAccessException 1: org.springframework.beans.MethodInvocationException: Property 'serviceBeans' threw exception; nested exception is java.lang.RuntimeException: java.lang.NullPointerException 
        at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:102) 
        at org.springframework.beans.AbstractPropertyAccessor.setPropertyValues(AbstractPropertyAccessor.java:58) 
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1358) 
       ... 37 more 

26
задан Community 23 May 2017 в 02:02
поделиться