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
          主站蜘蛛池模板: 额尔古纳市| 来安县| 玉树县| 东阳市| 林周县| 绥芬河市| 神农架林区| 靖宇县| 肇州县| 峡江县| 高邮市| 铁岭县| 广丰县| 邢台县| 常德市| 祁门县| 尼勒克县| 谢通门县| 株洲县| 青海省| 兴山县| 新巴尔虎左旗| 顺平县| 茶陵县| 阿克苏市| 株洲市| 太白县| 宿迁市| 湘乡市| 白河县| 沙田区| 富锦市| 孙吴县| 邓州市| 平阴县| 绥芬河市| 保山市| 资中县| 卫辉市| 炉霍县| 桂平市|