Lorsque je mélange des déclarations taglib JSTL 1.0 et JSTL 1.1, cela provoque une exception ParseException sur certains de mes serveurs, mais pas tous.Lorsque je mélange des déclarations taglib JSTL 1.0 et JSTL 1.1, cela provoque une exception ParseException sur certains de mes serveurs, mais pas tous. Pourquoi?
Voici le bloc de code qui me donne du mal:
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions"%>
<c:set var="TEXTVARIABLE">|STRINGOFTEXT|</c:set>
<c:set var="OTHERTEXTVARIABLE">${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}</c:set>
Et voici l'exception:
javax.servlet.jsp.JspException: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out'/attribute = 'valeur': une erreur s'est produite lors de l'analyse de l'attribut d'action personnalisé " value "with value" $ {fn: contains (TEXTVARIABLE, '| STRINGOFTEXT |')} ": org.apache.taglibs.standard.lang.jstl.parser.ParseException: les fonctions EL ne sont pas prise en charge.
Cependant, tout fonctionne bien si je change l'URI de la déclaration de base à http://java.sun.com/jsp/jstl/core
Alors voici la partie vraiment bizarre: pour une raison quelconque, le mélange 1.0 et 1.1 des déclarations taglib provoque seulement une exception sur deux mes serveurs, mon serveur de transfert et mon serveur de production. Cela ne cause aucun problème sur ma machine locale ou sur mon serveur de développement. Pourquoi est-ce? Qu'est-ce qui pourrait causer cette différence de comportement? Les trois serveurs sont extrêmement similaires dans l'installation et la configuration.
La page JSP est mise à disposition par OpenCMS et j'utilise le serveur web Caucho's Resin. Je comprends que vous ne savez pas comment mes serveurs ou CMS sont configurés, mais vraiment, ce que je cherche, ce sont des idées. Toutes les idées aideraient, ce problème m'a rendu absolument chauve. Même si vous ne savez pas ce qui pourrait causer le problème, si vous avez des suggestions du tout pour savoir comment je pourrais résoudre le problème, cela serait extrêmement utile. Je ne comprends tout simplement pas ce qui pourrait causer cette différence de comportement entre mes serveurs.
Pour référence, voici la trace complète de la pile:
javax.servlet.jsp.JspException: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out'/attribute = 'value': An error occurred while parsing custom action attribute "value" with value "${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported.
at org.opencms.jsp.CmsJspTagInclude.includeActionWithCache(CmsJspTagInclude.java:369)
at org.opencms.jsp.CmsJspTagInclude.includeTagAction(CmsJspTagInclude.java:241)
at org.opencms.jsp.CmsJspTagInclude.doEndTag(CmsJspTagInclude.java:472)
at _jsp._WEB_22dINF._jsp._online._system._modules._com__MYCOMPANY__marketing._templates._MAIN_0PAGE__jsp._jspService(_MAIN_0PAGE__jsp.java:153)
at com.caucho.jsp.JavaPage.service(JavaPage.java:60)
at com.caucho.jsp.Page.pageservice(Page.java:579)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:179)
at shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:175)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:485)
at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:350)
at org.opencms.flex.CmsFlexRequestDispatcher.includeExternal(CmsFlexRequestDispatcher.java:194)
at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:169)
at org.opencms.loader.CmsJspLoader.service(CmsJspLoader.java:1193)
at org.opencms.flex.CmsFlexRequestDispatcher.includeInternalWithCache(CmsFlexRequestDispatcher.java:423)
at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:173)
at org.opencms.loader.CmsJspLoader.dispatchJsp(CmsJspLoader.java:1227)
at org.opencms.loader.CmsJspLoader.load(CmsJspLoader.java:1171)
at org.opencms.loader.A_CmsXmlDocumentLoader.load(A_CmsXmlDocumentLoader.java:232)
at org.opencms.loader.CmsXmlContentLoader.load(CmsXmlContentLoader.java:52)
at org.opencms.loader.CmsResourceManager.loadResource(CmsResourceManager.java:964)
at org.opencms.main.OpenCmsCore.showResource(OpenCmsCore.java:1498)
at org.opencms.main.OpenCmsServlet.doGet(OpenCmsServlet.java:152)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:115)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:92)
at com.caucho.server.dispatch.ServletFilterChain.doFilter(ServletFilterChain.java:106)
at com.caucho.filters.CmsGzipFilter.doFilter(CmsGzipFilter.java:177)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:277)
at com.caucho.server.webapp.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:106)
at com.caucho.server.dispatch.ForwardFilterChain.doFilter(ForwardFilterChain.java:80)
at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:207)
at com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:520)
at com.caucho.util.ThreadPool.run(ThreadPool.java:442)
at java.lang.Thread.run(Thread.java:595)
Caused by: com.caucho.jsp.JspLineParseException: /WEB-INF/jsp/online/system/modules/com.MYCOMPANY.marketing/templates/common/MY_JSP_PAGE.jsp:1: tag = 'out'/attribute = 'value': An error occurred while parsing custom action attribute "value" with value "${fn:contains(TEXTVARIABLE, '|STRINGOFTEXT|')}": org.apache.taglibs.standard.lang.jstl.parser.ParseException: EL functions are not supported.
at com.caucho.jsp.java.JspNode.error(JspNode.java:1489)
at com.caucho.jsp.java.JspNode.error(JspNode.java:1480)
at com.caucho.jsp.java.JavaJspGenerator.validate(JavaJspGenerator.java:466)
at com.caucho.jsp.JspCompilerInstance.generate(JspCompilerInstance.java:475)
at com.caucho.jsp.JspCompilerInstance.compile(JspCompilerInstance.java:373)
at com.caucho.jsp.JspManager.compile(JspManager.java:233)
at com.caucho.jsp.JspManager.createPage(JspManager.java:177)
at com.caucho.jsp.JspManager.createPage(JspManager.java:157)
at com.caucho.jsp.PageManager.getPage(PageManager.java:248)
at com.caucho.jsp.PageManager.getPage(PageManager.java:166)
at com.caucho.jsp.QServlet.getSubPage(QServlet.java:292)
at com.caucho.jsp.QServlet.getPage(QServlet.java:210)
at com.caucho.server.dispatch.PageFilterChain.compilePage(PageFilterChain.java:206)
at com.caucho.server.dispatch.PageFilterChain.doFilter(PageFilterChain.java:133)
at shared.filter.RemoteAddrFilterBase.doFilter(RemoteAddrFilterBase.java:57)
at com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
at com.caucho.server.webapp.DispatchFilterChain.doFilter(DispatchFilterChain.java:115)
at com.caucho.server.cache.CacheFilterChain.doFilter(CacheFilterChain.java:175)
at com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:485)
at com.caucho.server.webapp.RequestDispatcherImpl.include(RequestDispatcherImpl.java:350)
at org.opencms.flex.CmsFlexRequestDispatcher.includeExternal(CmsFlexRequestDispatcher.java:194)
at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:169)
at org.opencms.loader.CmsJspLoader.service(CmsJspLoader.java:1193)
at org.opencms.flex.CmsFlexRequestDispatcher.includeInternalWithCache(CmsFlexRequestDispatcher.java:423)
at org.opencms.flex.CmsFlexRequestDispatcher.include(CmsFlexRequestDispatcher.java:173)
at org.opencms.jsp.CmsJspTagInclude.includeActionWithCache(CmsJspTagInclude.java:364)
... 45 more