2013-11-10 2 views
1

Я работаю над приложением JAX-RS. Раньше у меня это было как WAR, установленное на сервере Tomcat, и я получал метод запроса HTTTP, используя: javax.servlet.http.HttpServletRequest.getMethod().Как получить метод HTTP-запроса в приложении Grizzly-embedded Jersey?

Однако, сейчас я работаю со встроенным Grizzly сервером на моем приложении и обнаружил следующую ошибку при запуске:

Missing dependency for constructor public wci.api.resource.AudioSessionResource(javax.servlet.http.HttpServletRequest) at parameter index 0 

Всех моих ресурсов протягивает MyHappyCustomResource класса, который имеет конструктор, который принимает HttpServletRequest , предоставляемый конструктором ресурсов через Injection.

Это пример конструктора ресурса, то super вызов от MyHappyCustomResource:

import javax.servlet.http.HttpServletRequest; 

public AudioSessionResource(@Context HttpServletRequest request) { 
    super(request); 
    this.dao = new AudioSessionDao(this.sessionManager.getCurrentSession()); 
} 

Сейчас мне это нужно только, чтобы получить HTTP-метод так, любой другой или более правильный способ сделать это это оценено.

ответ

1

Решение было использовать класс Request Grizzly как рассказанная этой страницы на Grizzly официальном сайте:

https://grizzly.java.net/httpserverframework.html

Похожие абстракций в те, которые предлагаются в спецификации Servlet: HttpHandler (Servlet), Запрос (HttpServletRequest), Response (HttpServletResponse).

+0

Я не понимаю, почему у этого был такой хороший обзор. Предоставленная ссылка содержит несколько примеров обработки почтовых данных, но на самом деле не отвечает на вопрос. Нет способа, описанного в тексте, на который ссылается ссылка, что позволяет использовать класс Request для определения, является ли запрос GET или POST. –

+0

Это полезно для многих людей. Он не является явным, а подразумевается по этой ссылке. Тот факт, что не существует точной строки кода для копирования и вставки, не означает, что представленной информации недостаточно для решения проблемы. Это было для меня и людей, которые его голосуют. Если вы не можете понять это, я не понимаю, почему вы должны обвинять ответ в том, что он недостаточно для решения вашей проблемы. – CapitanNerd

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