2013-07-11 2 views
1

Я получаю следующее исключение, когда мы одновременно получаем доступ к страницам JSF более чем 10 пользователями Tomcat. Я использую JSF 2.0 (Мои лица 2.0.5) и богатые лица 4. Обратите внимание, что это происходит случайным образом, и нет никаких шагов для воссоздания этой ошибки. Я начал замечать это, когда мы запускали тест нагрузки из 10 одновременных пользователей в моем приложении.Исключение Null Pointer в java.lang.Class.isAssignableFrom

Please help !!!!. 

The exception is as follows 

SEVERE: Servlet.service() for servlet faces threw exception 
java.lang.NullPointerException 
     at java.lang.Class.isAssignableFrom(Native Method) 
     at javax.faces.component.UIComponent$EventListenerWrapper.isListenerForSource(UIComponent.java:1111) 
     at org.apache.myfaces.application.ApplicationImpl._traverseListenerList(ApplicationImpl.java:2092) 
     at org.apache.myfaces.application.ApplicationImpl.publishEvent(ApplicationImpl.java:522) 
     at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._publishPostBuildComponentTreeOnRestoreViewEvent(FaceletViewDeclarationLanguage.java:436) 
     at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._publishPostBuildComponentTreeOnRestoreViewEvent(FaceletViewDeclarationLanguage.java:454) 
     at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage._publishPostBuildComponentTreeOnRestoreViewEvent(FaceletViewDeclarationLanguage.java:466) 
     at org.apache.myfaces.view.facelets.FaceletViewDeclarationLanguage.buildView(FaceletViewDeclarationLanguage.java:349) 
     at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:66) 
     at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:239) 
     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:191) 
     at sun.reflect.GeneratedMethodAccessor361.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) 
     at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301) 
     at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:162) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:283) 
     at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:56) 
     at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:189) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:185) 
     at org.apache.myfaces.webapp.filter.ExtensionsFilter.doFilter(ExtensionsFilter.java:349) 
     at sun.reflect.GeneratedMethodAccessor360.invoke(Unknown Source) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.apache.catalina.security.SecurityUtil$1.run(SecurityUtil.java:269) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at javax.security.auth.Subject.doAsPrivileged(Subject.java:517) 
     at org.apache.catalina.security.SecurityUtil.execute(SecurityUtil.java:301) 
     at org.apache.catalina.security.SecurityUtil.doAsPrivilege(SecurityUtil.java:243) 
     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:230) 

К сожалению, мы не можем быть в состоянии модернизировать MyFaces из-за время contraints.Basically У меня есть несколько ссылок на странице приборной панели и ее раскол в двух секциях. В первом разделе отображаются все ссылки, а вторая секция, расположенная под первой секцией, отображает содержимое кликов пользователя ссылки в первом разделе. Во время нашего обычного тестирования все работает отлично, и только во время тестирования нагрузки мы видим исключение, указанное в моем сообщении выше всякий раз, когда пользователь нажимает на ссылки (персонал) на странице панели. Дайте мне знать, если вам нужны подробности. Спасибо за вашу помощь.

+0

Можете ли вы добавить больше контекста к вопросу? – skuntsel

+0

MyFaces 2.0.5 является древним. Вы пробовали более новую версию? – BalusC

+0

Я обновил сообщение с более подробной информацией. Дайте знать, если у вас появятся вопросы. Цените всю свою помощь – user2574293

ответ

0

Моя проблема решена путем удаления тега JSTL со страницы панели мониторинга. Это был в основном неиспользуемый тег. Этот документ помог мне решить эту проблему.

http://myfaces.apache.org/core20/myfaces-impl/xref/org/apache/myfaces/view/facelets/FaceletViewDeclarationLanguage.html

Спасибо всем за помощь !!!

0

У меня была аналогичная проблема с тем же стеклом. Моя вина была, что я использовал <c:if /> с условием, изменяет запрос ajax. Это приводит к модификации дерева компонентов во время запроса и, как представляется, проблематично в некоторых состояниях. Мое решение проблемы состояло в том, чтобы вместо этого использовать <ui:fragment /> и привязать атрибут rendered к этому условию. Может быть, это помогает кому угодно.

+0

У меня нет нового вопроса. Я просто хотел, чтобы другие пользователи знали, как я решил проблему. Я изменил свой ответ, и я надеюсь, что теперь это станет яснее ... – soumas