Я выяснил, что проверка была в нашем коде в конфигурации соединителя перед запуском tomcat.У HTTP нет такой проверки лимита, кроме ограничения максимального размера запроса POST.
private final Tomcat tomcat = new Tomcat();
Connector connector = tomcat.getConnector();
connector.setMaxParameterCount(30000);
В моем запросе на публикацию было всего 3 параметра, как показано ниже.Теперь, поскольку максимальные параметры 30000, только первые 2 параметра и 29998 из третьего были переданы по проводам.
Чтобы исправить эту проблему, я изменил API, чтобы принимать JSON вместо параметров формы.Объект JSON является одним параметром, поэтому максимальное количество параметров не нарушается.Вот как выглядит мой старый и новый API
old API:
@POST
@Path("/create")
public void create(@FormParam("id") long id, @FormParam("date") LocalDate date, @FormParam("oldPkeys") List<Long> oldPkeys, @FormParam("newPkeys") List<Long> newPkeys);
new One:
@POST
@Path("/createElements")
@Consumes(APPLICATION_JSON)
public void createElements(@QueryParam("id") long id, @QueryParam("date") LocalDate date, MyJSONObject pKeys);
MyJSONObject - это пользовательский объект, который содержит oldPkeys и новые Pkeys