У меня есть Java-клиент для вызова веб-службы REST.
Если я объявлю путь в классе Java. Все хорошо, то есть: вот так:
@Path("/aqsensor")
@Produces(MediaType.TEXT_PLAIN)
public class CUManagerSensorImp {
@GET
@Path("/getQuality")
public String getQuality() {
String quality;
double average = getAverage();
if (isBetween(average, 0, 39))
quality = "Bonne qualité de l'air";
else if (isBetween(average, 40, 79))
quality = "Moyenne qualité de l'air";
else
quality = "Mauvaise qualité de l'air";
return quality;
}
private double getAverage() {
int v = (int) (Math.random() * 125);
return v;
}
private boolean isBetween(double average, int min, int max) {
if (average >= min && average <= max)
return true;
else
return false;
}
но если я объявлю Путь в интерфейсе. вот так (код интерфейса):
@Path("/aqsensor")
@Produces(MediaType.TEXT_PLAIN)
public interface CUManagerSensor {
@GET
@Path("/getQuality")
String getQuality();
и это реализация интерфейса:
public class CUManagerSensorImp implements CUManagerSensor{
@Override
public String getQuality() {
String quality;
double average = getAverage();
if (isBetween(average, 0, 39))
quality = "Bonne qualité de l'air";
else if (isBetween(average, 40, 79))
quality = "Moyenne qualité de l'air";
else
quality = "Mauvaise qualité de l'air";
return quality;
}
private double getAverage() {
int v = (int) (Math.random() * 125);
return v;
}
private boolean isBetween(double average, int min, int max) {
if (average >= min && average <= max)
return true;
else
return false;
}
}
Я получаю следующее исключение:
Exception in thread "main" javax.ws.rs.InternalServerErrorException: HTTP 500 Erreur Interne de Servlet
at org.glassfish.jersey.client.JerseyInvocation.convertToException(JerseyInvocation.java:1074)
at org.glassfish.jersey.client.JerseyInvocation.translate(JerseyInvocation.java:859)
at org.glassfish.jersey.client.JerseyInvocation.lambda$invoke$1(JerseyInvocation.java:743)
at org.glassfish.jersey.internal.Errors.process(Errors.java:292)
at org.glassfish.jersey.internal.Errors.process(Errors.java:274)
at org.glassfish.jersey.internal.Errors.process(Errors.java:205)
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:390)
at org.glassfish.jersey.client.JerseyInvocation.invoke(JerseyInvocation.java:741)
at org.glassfish.jersey.client.JerseyInvocation$Builder.method(JerseyInvocation.java:404)
at org.glassfish.jersey.client.JerseyInvocation$Builder.get(JerseyInvocation.java:300)
at airQUserAgent.UserImp.main(UserImp.java:25)
Где проблема, когда я добавляю интерфейс? Запрещено добавлять интерфейсы при создании остальных веб-сервисов? Или вы должны добавить некоторые инструкции в файл web.xml?
И заранее спасибо