Я пытаюсь отлаживать приложение джерси 2 на скумбриевидном гидролике 162, но при каждом запросе, после печатается информация трассировки я получаю это исключение, и клиент не получает никакого ответа:Включение Джерси ведения журнала трассировка вызывает MaxHeaderCountExceededException
org.glassfish.grizzly.http.util.MimeHeaders$MaxHeaderCountExceededException: Illegal attempt to exceed the configured maximum number of headers: 100
at org.glassfish.grizzly.http.util.MimeHeaders.createHeader(MimeHeaders.java:396)
at org.glassfish.grizzly.http.util.MimeHeaders.addValue(MimeHeaders.java:422)
at org.glassfish.grizzly.http.HttpHeader.addHeader(HttpHeader.java:707)
at org.glassfish.grizzly.http.server.Response.addHeader(Response.java:1177)
at org.apache.catalina.connector.Response.addHeader(Response.java:1221)
at org.apache.catalina.connector.ResponseFacade.addHeader(ResponseFacade.java:579)
at org.glassfish.jersey.servlet.internal.ResponseWriter.writeResponseStatusAndHeaders(ResponseWriter.java:165)
at org.glassfish.jersey.server.ServerRuntime$Responder$1.getOutputStream(ServerRuntime.java:701)
at org.glassfish.jersey.message.internal.CommittingOutputStream.commitStream(CommittingOutputStream.java:200)
at org.glassfish.jersey.message.internal.CommittingOutputStream.flushBuffer(CommittingOutputStream.java:305)
at org.glassfish.jersey.message.internal.CommittingOutputStream.commit(CommittingOutputStream.java:261)
at org.glassfish.jersey.message.internal.CommittingOutputStream.close(CommittingOutputStream.java:276)
at org.glassfish.jersey.message.internal.OutboundMessageContext.close(OutboundMessageContext.java:839)
at org.glassfish.jersey.server.ContainerResponse.close(ContainerResponse.java:412)
at org.glassfish.jersey.server.ServerRuntime$Responder.writeResponse(ServerRuntime.java:784)
at org.glassfish.jersey.server.ServerRuntime$Responder.processResponse(ServerRuntime.java:444)
at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:434)
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:329)
в моем Джерси я приложение, которое я настроен след, как так:
public class RestApplication extends ResourceConfig {
public RestApplication() {
super();
packages(true, "com.example");
register(JacksonFeature.class);
register(JsonProvider.class);
register(RolesAllowedDynamicFeature.class);
property("jersey.config.server.tracing.type", "ON_DEMAND");
property("jersey.config.server.tracing.threshold", "VERBOSE");
}
}
Я включил регистратор в моем logback.xml (я настроил скумбриевидный гидролик использовать Logback), и я вижу полную информацию о трассировке в своем журнале сервера, когда я включаю ее по запросу, добавляя заголовок X-Jersey-Tracing-Accept
к моему запросу, но затем получаю исключение. Когда я не добавляю заголовок в запрос, все работает, но, конечно, я не получаю след.
Мне интересно, есть ли что-нибудь, что я могу изменить, чтобы исправить это или это ошибка?
спасибо @OndrejM, я попробую, хотя я уверен, что количество заголовков в отдельных фигурах, поэтому добавление еще 1 не приблизит его к 100. –
да, это сработало! Я неправильно понял ваш ответ, я думал, вы имели в виду, что добавили бы один заголовок в ответ, но он добавляет 1 заголовок «за событие», который на самом деле много и много дополнительных заголовков, поэтому он перевалил за 100. Спасибо! –