Я читаю, что следующая проверка должна работать с JAX-RS 2.0.
public Response getEvent(@PathParam("lagdays")
@Pattern(regexp = "[0-7]", message = "Lag Days must be between 0 and 7")
Integer lagDays,
@Context HttpServletResponse res) {
Тем не менее, я получаю сообщение, показанное ниже, когда я запускаю его
HV000030: No validator could be found for type: java.lang.Integer.
Как я могу определить, в какой версии JAX-RS я нахожусь? Я смотрел в моем файле pom, и я ничего не вижу для JAX-RS. Я использую Java 7.
Я думаю, что я не использую JAX-RS 2.0, или что у меня есть синтаксическая ошибка где-то.
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.1.0.Final</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.ext</groupId>
<artifactId>jersey-bean-validation</artifactId>
<version>2.4.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.0.1.Final</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
Насколько мне известно, @Pattern
действует только на CharSequence
(ссылка). Если вы хотите, чтобы ваши номера находились в диапазоне, используйте @Min
и @Max