Я использую Apache CXF в качестве реализации JAX-RS, и у меня проблема с необязательными «параметрами объекта».Взгляните на этот фрагмент кода:
@Path("/")
public class myClass {
@PUT
@Path("/{p1}/something/{p2}/something/{p3}/something/{p4}")
@Consumes(MediaType.APPLICATION_XML)
Response updateStuff(
@PathParam("p1") String p1,
@PathParam("p2") Long p2,
@PathParam("p3") String p3,
@PathParam("p4") Long p4,
MyEntity entity);
}
Если сущность не нулевая, все работает нормально.
Однако я хочу обрабатывать запросы с пустым телом.Я ожидаю, что в таком случае сущность будет нулевой.Но это не правда.Кажется, что CXF не может найти мой метод, если тело имеет значение null.В журналах я могу найти предупреждение о пустом теле сообщения (от AbstractJAXBProvider), и это все.
Я также пытался перегрузить метод updateStuff:
@Path("/")
public class myClass {
@PUT
@Path("/{p1}/something/{p2}/something/{p3}/something/{p4}")
@Consumes(MediaType.APPLICATION_XML)
Response updateStuff(
@PathParam("p1") String p1,
@PathParam("p2") Long p2,
@PathParam("p3") String p3,
@PathParam("p4") Long p4,
MyEntity entity);
@PUT
@Path("/{p1}/something/{p2}/something/{p3}/something/{p4}")
Response updateStuff(
@PathParam("p1") String p1,
@PathParam("p2") Long p2,
@PathParam("p3") String p3,
@PathParam("p4") Long p4);
}
Но он тоже не работал
Есть ли у вас какие-либо идеи о том, как обращаться с параметрами null entites?