Ошибка веб-приложения Java. Не могу понять, почему это происходит сейчас.

StackOverflow https://stackoverflow.com/questions/2237034

Вопрос

Я использую eclipse, могу создать веб-приложение и развернуть его в Jboss4.2.1.Раньше это работало, и я ничего особо не менял, чтобы возникла эта ошибка.Когда я захожу в веб-приложение через браузер, раньше я входил в систему с общим именем пользователя, а затем мог использовать свое веб-приложение как обычно.

Теперь, когда я захожу в веб-приложение через браузер, эта ошибка возникает неоднократно и ничего не показывает.Вот ошибка, которую я получаю:

07:55:06,174 INFO  [security] User '' attempting login via SiteMinder...
07:55:06,174 INFO  [security] User '' attempting login via SiteMinder...
07:55:06,174 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.LinkageError: Class javax/el/ExpressionFactory violates loader constraints
    at org.apache.jsp.WEB_002dINF.jsp.layout.header_jsp._jspx_meth_c_005fset_005f0(header_jsp.java:207)
    at org.apache.jsp.WEB_002dINF.jsp.layout.header_jsp._jspx_meth_c_005fif_005f0(header_jsp.java:179)
    at org.apache.jsp.WEB_002dINF.jsp.layout.header_jsp._jspService(header_jsp.java:82)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:643)
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:637)
    at net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:122)
    at org.apache.jsp.WEB_002dINF.jsp.layout.layout_jsp._jspx_meth_stripes_005flayout_002drender_005f0(layout_jsp.java:796)
    at org.apache.jsp.WEB_002dINF.jsp.layout.layout_jsp._jspx_meth_stripes_005flayout_002dcomponent_005f2(layout_jsp.java:759)
    at org.apache.jsp.WEB_002dINF.jsp.layout.layout_jsp._jspService(layout_jsp.java:200)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:687)
    at org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:590)
    at org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:505)
    at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    at org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:643)
    at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:637)
    at net.sourceforge.stripes.tag.layout.LayoutRenderTag.doEndTag(LayoutRenderTag.java:122)
    at org.apache.jsp.view.public_.login_jsp._jspService(login_jsp.java:335)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:387)
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:320)
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:266)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at net.sourceforge.stripes.controller.StripesFilter.doFilter(StripesFilter.java:180)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:112)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
    at org.acegisecurity.ui.switchuser.SwitchUserProcessingFilter.doFilter(SwitchUserProcessingFilter.java:341)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
    at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)
    at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
    at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
    at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
    at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Thread.java:595)

Любая помощь будет принята с благодарностью.

Это было полезно?

Решение

Путь к классам во время выполнения, скорее всего, загрязнен дубликатами и/или разными версиями EL API.

Обычно EL API уже поставляется с рассматриваемым сервлет-контейнером/сервером приложений.Вы должны войти ни за что скопировать/дублировать/переместить свои библиотеки куда-нибудь еще, например, в веб-приложение /WEB-INF/lib или, что еще хуже, JRE /lib.Очистите путь к классам от всех дубликатов и/или классов/JAR-файлов с разными версиями.В противном случае это может привести к таким исключениям.

Распространенной ошибкой среди новичков является то, что они копируют библиотеки сервлет-контейнера/сервера приложений в /WEB-INF/lib потому что они получили ошибки компиляции в IDE (javax.servlet не найден и так далее).Копирование библиотек - это неправильный решение.Вам лучше интегрировать сервер в одну и ту же IDE и настроить проект IDE для ссылки/связывания рассматриваемого сервера, чтобы IDE автоматически использовала свои библиотеки в пути сборки проекта.

Другие советы

Я уверен, что у вас есть, но перезапустите свои службы...

Небольшой поиск в Google показывает, что другие приложения имеют аналогичные проблемы, обычно это связано с некоторыми проблемами совместимости с библиотеками el.Возможно, вы захотите это проверить.

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

Обычно это означает, что в пути к классам имеется более одной копии класса-нарушителя.

Я бы попытался выяснить, присутствует ли javax.el.ExpressionFactory.class несколько раз.(возможно, он есть в библиотеке сервера, а также в библиотеке приложений)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top