Использование MessageBodyReader для нескольких параметров в сервисах RESTful - PullRequest
0 голосов
/ 11 июня 2011

Следующий метод не позволяет запускать мой контейнер сервлета:

@PUT
public String upload(final Customer customer, final Control control) {
  // ...
}

Я получаю, что неудивительно:

SEVERE: Missing dependency for method ... at index 0
SEVERE: Missing dependency for method ... index 1
SEVERE: Method, ..., is not recognized as valid resource method.

Я реализовал MessageBodyReaders для каждого типа.Удаление любого из параметров позволяет контейнеру сервлета запускаться изящно, поэтому я подозреваю, что должно быть ограничение на число параметров, которые будут разрешены через Entity-Providers.

Проблема в том, что I NEED эти два параметра, поскольку я предоставляю поддержку как SOAP, так и REST, и, конечно, я не могу изменять сигнатуры методов, и я также не хочу создавать один конкретный метод Джерси и один конкретный JAX-WSметод в качестве точек входа.

Я использую Джерси 1.7.

1 Ответ

1 голос
/ 12 июня 2011

JAX-RS допускает только один объектный параметр. Резонанс очень прост: каждый запрос может иметь не более одного тела (множественные части не поддерживаются спецификацией) Таким образом, вы должны создать два метода. Кстати, я не думаю, что это хорошая практика - смешивать JAXRS и JAXWS в одном классе.

...