cuiyi's blog(崔毅 crazycy)

          記錄點滴 鑒往事之得失 以資于發展
          數據加載中……

          論技術官方似乎確比民間友好,strust之bean:include之惑(一)

          論技術官方似乎確比民間友好,strust之bean:include之感(一)
          論技術官方似乎確比民間友好,jstl之c:import之感(二)

          案例環境

          JBOSS4.0.5GA(Tomcat5.05)關鍵是Tomcat的版本
          案例背景:
          1) configure HTTPS visit
          operation>> https://[server domain name]/[web-app]/
          result>>>  some work well, while others not

          2)聯想:既然部分work well,部分not;那與配置無關。
                           如果做遠程映射訪問,是否是這個問題呢?
          operation1>>>  ssh -C -L 8080:localhost:8080 [username]@[remote server]
          result>>>  work well
          operation2>>>ssh -C -L 12345:localhost:8080 [username]@[remote server]
          result>>> some work well, while others not, the same as https

          3) 逐行跟蹤:
          原來是一個2級跳的問題
          以實景分析:
          #####a)######
          訪問 https://localhost/app/journal.do?method=journalView&companyid=001  出錯
          #####b)######
          定位到的出錯的語句是:
          <bean:include page='<%="/journal.do?method=journalList"%>' id="outputstring"/>
          <%=outputstring%>
          #####c)######
          直接在url里訪問這個出錯的語句,可以正常顯示
          https://localhost/app/journal.do?method=journalList
          #####d)######
          出錯的原因
          javax.servlet.jsp.JspException: Exception opening resource https://localhost/app/journal.do?method=journalList: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
              org.apache.struts.taglib.bean.IncludeTag.doStartTag(IncludeTag.java:255)
              org.apache.jsp.ctr.ctrbook.journal.maininfo_jsp._jspService(maininfo_jsp.java:369)
              org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
              javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
              org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
              org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
              org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
              javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
              org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1069)
              org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:455)
              org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:279)
              org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
              org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:507)
              javax.servlet.http.HttpServlet.service(HttpServlet.java:697)
              javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
              org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:292)
              org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
              org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:79)
              org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
              org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:246)
              org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
              com.jc.cxc.web.filter.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:171)
              org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:303)
              org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:173)
              org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:120)
              com.justcommodity.cxc.servlets.filters.GeneralFilter.doFilter(GeneralFilter.java:61)
              org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
          #####e)分析######
          這就是說,一個.do的頁面調用另外的.do,導致出的錯;而且出錯的原因定位到bean:include標簽
          #####f)解決######
          采用JSTL(reference resource: 1 c.tld 2 jstl.jar 3 standard.jar)
          JSP頭增加 <%@ taglib uri="/WEB-INF/c.tld" prefix="c"%>
          bean:include標簽換成c:import,形式:<c:import url='<%="/journal.do?method=journalList"%>' />
          #####g)原因分析######
          leave out




          posted on 2007-11-10 01:56 crazycy 閱讀(2493) 評論(4)  編輯  收藏 所屬分類: JavaEE技術

          評論

          # re: 論技術官方似乎確比民間友好,strust之bean:include之感  回復  更多評論   

          呵呵 Sun 公司出品 起碼品質有保證 其它的嘛... 沒任何保證的 ASIS 嘛
          2007-11-10 09:02 | BeanSoft

          # re: 論技術官方似乎確比民間友好,strust之bean:include之感  回復  更多評論   

          ASIS 是什么意思呀
          2007-11-10 12:07 | crazycy

          # re: 論技術官方似乎確比民間友好,strust之bean:include之感  回復  更多評論   

          AS IS ... 呵呵 原樣提供
          2007-11-10 12:59 | BeanSoft

          # re: 論技術官方似乎確比民間友好,strust之bean:include之惑(一)[未登錄]  回復  更多評論   

          <bean:include id="list" page="journal.do?method=journalList/>

          <bean:write name="list" filter="false" />
          2008-12-12 12:46 | dd
          主站蜘蛛池模板: 黑山县| 安化县| 射洪县| 通州市| 平安县| 嘉兴市| 武义县| 闽清县| 济宁市| 和林格尔县| 云梦县| 张家港市| 朝阳县| 吴旗县| 齐齐哈尔市| 西林县| 聊城市| 扬中市| 凉山| 丹棱县| 霍州市| 江永县| 贵阳市| 莲花县| 防城港市| 鹿泉市| 抚顺县| 安仁县| 新田县| 普宁市| 都匀市| 晋宁县| 墨脱县| 剑河县| 昭平县| 扬中市| 丰镇市| 九龙县| 兰溪市| 图木舒克市| 绿春县|