Это обычный метод Java, который имеет одну или несколько аннотаций, связанных с ним. Подпись метода не имеет особых ограничений, наложенных на него Джерси.
Сказав, что вы хотите, чтобы убедиться, что различные аннотации (например, @Produces
, @Consumes
, @PathParam
, @QueryParam
) применяются к типам данных, которые Джерси знает, как отобразить. Например, у Джерси нет проблем с картографированием @PathParam
до String
или long
. Джерси также может работать с Java-классами с аннотациями JAXB, поэтому ваша подпись метода может включать в себя тип JAXB в сочетании с @Consumes(MediaType.APPLICATION_XML)
, а Джерси будет преобразовывать содержимое запроса из XML-документа в Java-класс JAXB.
Например:
@GET
@Produces(MediaType.APPLICATION_XML)
@Path("somepath")
public Foos getFoosByQuery(@PathParam("businessName") String businessName,
@PathParam("businessUnitName") String businessUnitName, @PathParam("fileType") String fileType,
@QueryParam("from") String fromString, @QueryParam("to") String toString,
@DefaultValue("10") @QueryParam("interval") int intervalMinutes,
@DefaultValue("1000") @QueryParam("limit") int limit,
@DefaultValue("false") @QueryParam("errors") boolean errors) {
Здесь мы видим, что у нас есть много параметров (с типами String
, int
и boolean
) и тип возвращаемого значения, который является JAXB аннотированный POJO. Джерси извлекает значения @PathParam
из пути, значения @QueryParam
из строки запроса и преобразует возвращаемое значение в документ XML и включает его в качестве содержимого ответа.
Я также отмечу, что имя метода может быть любым, что мы хотим, поэтому концепция «перегрузки» ортогональна Джерси. Нормальные правила перегрузки Java применяются.
Из этого примера должно быть очевидно, что вы не можете перечислить все возможные «перегрузки», которые вы можете использовать с Джерси.
Возможно, другой вопрос относительно всех возможных типов сопоставлений, которые может выполнять Джерси, будет в большей степени соответствовать тому, что вы ищете.
Я не понимаю, как подпись может не иметь ограничений. – ksl