Java EL объект `$ {пулы}` - PullRequest
       16

Java EL объект `$ {пулы}`

0 голосов
/ 03 октября 2011

Я пытаюсь адаптировать код, используемый в PSI Probe (или, в более общем смысле, идею PSI Probe) для использования внутри веб-приложения моей компании.Я могу получить большую часть того, что я хочу сделать, но я застрял на одном кусочке кода - на вкладке «Статус».Один столбец данных - это время обработки потока, данные, которые мне бы очень хотелось получить, но я не могу понять, откуда они берутся.Вот соответствующий фрагмент:

<c:forEach items="${pools}" var="pool" varStatus="poolStatus">
  <div class="poolInfo">
    <h3>${pool.name}</h3>
    <div class="processorInfo">
      <span class="name">
        <spring:message code="probe.jsp.status.processor.maxTime"/>
      </span>
      &nbsp;${pool.maxTime}

Я не могу понять, откуда исходит объект pools!У кого-нибудь есть опыт с такими вещами?Спасибо!

Ответы [ 2 ]

3 голосов
/ 04 октября 2011

Глядя на исходный код (это код Google, поиск Google работает очень быстро)

пулы заполняются в ListThreadPoolsController

List pools = containerListenerBean.getThreadPools();
        return new ModelAndView(getViewName())
                .addObject("pools", pools);

При более детальном рассмотрении ContainerListenerBean

показаны свойства, перечисленные в status.jsp

<span class="name"><spring:message code="probe.jsp.status.currentThreadCount"/></span>&nbsp;${pool.currentThreadCount}
<span class="name"><spring:message code="probe.jsp.status.currentThreadsBusy"/></span>&nbsp;${pool.currentThreadsBusy}
<span class="name"><spring:message code="probe.jsp.status.maxThreads"/></span>&nbsp;${pool.maxThreads}
<span class="name"><spring:message code="probe.jsp.status.maxSpareThreads"/></span>&nbsp;${pool.maxSpareThreads}
<span class="name"><spring:message code="probe.jsp.status.minSpareThreads"/></span>&nbsp;${pool.minSpareThreads}

, заполняемые в методе getThreadPools()

ThreadPool threadPool = new ThreadPool();
threadPool.setName(executorName.getKeyProperty("name"));
threadPool.setMaxThreads(JmxTools.getIntAttr(server, executorName, "maxThreads"));
threadPool.setMaxSpareThreads(JmxTools.getIntAttr(server, executorName, "largestPoolSize"));
threadPool.setMinSpareThreads(JmxTools.getIntAttr(server, executorName, "minSpareThreads"));
threadPool.setCurrentThreadsBusy(JmxTools.getIntAttr(server, executorName, "activeCount"));
threadPool.setCurrentThreadCount(JmxTools.getIntAttr(server, executorName, "poolSize"));
2 голосов
/ 03 октября 2011

Обычно это может происходить из двух мест.Сервлет, который вызывается перед JSP или фильтром.Проверьте все фильтры и сервлет, сопоставленный с открываемым вами URL.

...