2010-03-31 3 views
2

JSTL 1.0과 JSTL 1.1 taglib 선언을 혼합하면 일부 서버에서는 ParseException이 발생하지만 전부는 아닙니다. 예외 여기JSTL 1.0과 JSTL 1.1 taglib 선언을 혼합하면 일부 서버에서는 ParseException이 발생하지만 전부는 아닙니다. 왜?

<%@ 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> 

을 그리고있다 :

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': 사용자 지정 작업 특성을 구문 분석하는 동안 오류가 발생했습니다 " 값 : "$ {fn : contains (TEXTVARIABLE, '| STRINGOFTEXT |')}" ": org.apache.taglibs.standard.lang.jstl.parser.ParseException : EL 함수가 없습니다. 지원. 내가 http://java.sun.com/jsp/jstl/core

에 핵심 선언에 대한 URI를 변경 그래서 여기 정말 이상한 부분이 있다면

그러나, 모든 작동합니다 : 어떤 이유로, 1.0 및 1.1 태그 라이브러리 선언은 두 가지에 예외가 발생 혼합 내 서버, 스테이징 서버 및 프로덕션 서버. 내 로컬 컴퓨터 또는 개발 서버에서 전혀 문제가 발생하지 않습니다. 왜 이런거야? 이 행동의 차이를 일으키는 원인은 무엇일까요? 3 개의 서버는 설치 및 구성면에서 매우 유사합니다.

OpenCMS에서 JSP 페이지를 제공하고 있으며 Caucho의 Resin 웹 서버를 사용하고 있습니다. 내 서버 또는 CMS가 어떻게 설정되었는지는 모르지만 실제로 내가 찾고있는 것은 아이디어입니다. 어떤 아이디어라도 도움이된다면,이 문제는 나를 절대적으로 힘들게 만들었습니다. 비록 당신이 문제를 일으킬 수 있는지 모르더라도, 내가 어떻게 할 수 있는지에 대한 제안이 있다면 접근이 매우 도움이 될 것입니다. 난 그냥 내 서버 간의 동작이 차이를 일으킬 수있는 이해가 안돼. 그것은 클래스 패스에 다른 JSTL 버전을 가진 발생할 수 있습니다

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 

답변

3

:

는 참고로, 여기에 전체 스택 추적입니다. 즉, classpath가 오염되었습니다. 모든 JSTL 1.0 구현을 제거하여 클래스 경로에 JSTL 1.1 만 갖도록한다. 웹 애플리케이션의 기본 클래스 경로에 포함되는 경로는 각각 Appserver/lib, Webapp/WEB-INF/lib, JRE/lib, JRE/lib/ext 등입니다. 정확한 JSTL 버전을 확인하려면 jstl.jar을 ZIP 또는 RAR 도구로 추출하고 MANIFEST.MF 파일을 읽으십시오.