posts - 10, comments - 9, trackbacks - 0, articles - 17

          2008年11月30日

          [ERROR] 07-29 11:23 - The /WEB-INF/web.xml was not found.  (ActionServlet.java:1787)
          java.net.ConnectException: Connection timed out: connect

          原web.xml頭部:
          <?xml version="1.0" encoding="UTF-8"?>
          <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
          <web-app>




            <servlet>
              <servlet-name>action</servlet-name>
              <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>


          修改為
          <?xml version="1.0" encoding="UTF-8"?>
          <web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
              xmlns:xsi
          ="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation
          ="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">




            
          <servlet>
              
          <servlet-name>action</servlet-name>
              
          <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>

          posted @ 2010-07-29 11:23 wesley1987 閱讀(1511) | 評論 (0)編輯 收藏


          在tomcat等容器中發(fā)布帶velocity的應(yīng)用時, 出現(xiàn) org.apache.velocity.exception.ResourceNotFoundException : Unable to find resource ...vm  的解決辦法:

          配置文件 velocity.properties 中, 如果有
          resource.loader = file

          file
          .resource.loader.description = Velocity File Resource Loader
          file
          .resource.loader.class = org.apache.velocity.runtime.resource.loader.FileResourceLoader
          file
          .resource.loader.path = .
          file
          .resource.loader.cache = false
          file
          .resource.loader.modificationCheckInterval = 2

          這段, 全部注釋掉即可.

          若沒有, 就在配置里寫上以上內(nèi)容, 并更改第三項為

          file.resource.loader.class = org.apache.velocity.tools.view.WebappResourceLoader

          posted @ 2010-07-28 15:35 wesley1987 閱讀(14186) | 評論 (1)編輯 收藏

          1。指定velocity.properties文件,  默認(rèn)路徑為 WEB-INF/velocity.properties 也可自定義路徑, 在web.xml中
                <servlet>
                  
          <servlet-name>velocity</servlet-name>
                  
          <servlet-class>org.apache.velocity.tools.view.servlet.VelocityLayoutServlet</servlet-class>
                  
          <init-param>
                      
          <param-name>org.apache.velocity.properties</param-name>
                      
          <param-value>/WEB-INF/config/velocity.properties</param-value>
                  
          </init-param>
                  
          <init-param>
                      
          <param-name>org.apache.velocity.toolbox</param-name>
                      
          <param-value>/WEB-INF/config/velocity-toolbox.xml</param-value>
                  
          </init-param>
                  
          <load-on-startup>5</load-on-startup>
                
          </servlet>
          注意 load-on-startup 需要配置且靠后, 否則啟動時看不到日志.

          2。在velocity.properties中配置日程相關(guān)參數(shù):
          #----------------------------------------------------------------------------
          #  default LogSystem to use: default: AvalonLogSystem
          #----------------------------------------------------------------------------


          runtime
          .log.logsystem.class = org.apache.velocity.runtime.log.SimpleLog4JLogSystem

          runtime
          .log.logsystem.log4j.category = velocity_log

          #----------------------------------------------------------------------------
          # This controls if Runtime.error(), info() and warn() messages include the
          # whole stack trace. The last property controls whether invalid references
          # are logged.
          #----------------------------------------------------------------------------


          runtime
          .log.error.stacktrace = false
          runtime
          .log.warn.stacktrace = false
          runtime
          .log.info.stacktrace = false
          runtime
          .log.invalid.reference = true


          3\ 配置log4j.properties,  具體配置意義請參看log4j配置相關(guān)文檔
          log4j.rootLogger=INFO,CONSOLE,FILE
          log4j
          .logger.velocity_log=INFO,CONSOLE,VELOCITY
          log4j
          .addivity.org.apache=true

          log4j
          .appender.CONSOLE=org.apache.log4j.ConsoleAppender
          log4j
          .appender.CONSOLE.Threshold=WARN
          log4j
          .appender.CONSOLE.Target=System.out
          log4j
          .appender.CONSOLE.Encoding=GBK
          log4j
          .appender.CONSOLE.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.CONSOLE.layout.ConversionPattern=[%-4p] %d{MM-dd HH:mm} - %m  %n

          log4j
          .appender.VELOCITY=org.apache.log4j.FileAppender
          log4j
          .appender.VELOCITY.File=E:/workspace/dwrt/WebRoot/log/velocity.log
          log4j
          .appender.VELOCITY.Append=false
          log4j
          .appender.VELOCITY.Encoding=GBK
          log4j
          .appender.VELOCITY.layout=org.apache.log4j.PatternLayout
          log4j
          .appender.VELOCITY.layout.ConversionPattern=[%-4p] %d{MM-dd HH:mm} - %m  %n

          posted @ 2010-07-28 11:39 wesley1987 閱讀(2476) | 評論 (0)編輯 收藏

          select COUNT(*) from table t WHERE t.col <> '3'


          SELECT COUNT(*) FROM table t WHERE t.col NOT IN
          (select t.col from table t WHERE t.col= '3')

          以上兩句SQL的執(zhí)行結(jié)果不同, 因為 <> 在排除3的同時, 將null也排除了,
          所以當(dāng)比較字段含null時,第一句將比第二句的結(jié)果少.

          當(dāng)然第二句從效率上來說不是一個好的寫法, 這樣寫只是為了理解, 在第一句后面, 加上 or t.col is null 應(yīng)該就等效了.

          posted @ 2010-07-07 10:17 wesley1987 閱讀(7307) | 評論 (1)編輯 收藏

          在js中寫了個替換字符的句子, 然后才知道原來js沒有replaceAll方法, 就是說用replace的話, 他自會替換一次.

          自定義replaceAll方法,
          String.prototype.replaceAll  = function(s1,s2){    
                  return this.replace(new RegExp(s1,"gm"),s2);   
          }  

          gm     g=global, m=multiLine  , 

          或直接 string = string..replace(new RegExp(s1,"gm"),s2);   

          posted @ 2010-07-07 09:44 wesley1987 閱讀(1077) | 評論 (0)編輯 收藏

          在使用DispatchAction時出現(xiàn)了這個問題,從這句話分析,就是沒有在指定的類中,找到對應(yīng)的方法。

          先說結(jié)論: 在Action中定義的方法(要在參數(shù)中使用的方法),參數(shù)一定要固定為
          (ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response )

          --------------------------------
          這種錯誤,一般在保證所有路徑的拼寫都正確的情況下應(yīng)該就能避免,

          那接著分析一下,struts是如何從jsp一步步找到這個方法呢?


          1 頁面上 action的路徑,以及對應(yīng)的struts配置文件中定義的parameter的參數(shù)名(我這叫method)屬性值,這個屬性值應(yīng)對應(yīng)著 Action類的方法名。

          2 確認(rèn)了以上路徑都正確的情況下,考慮到DispatchAction對應(yīng)“方法”的方式,發(fā)現(xiàn)原來是方法多了一個參數(shù)。

          順便看了下DispatchAction源代碼,看到里面找方法的時候,用的是
           method = clazz.getMethod(name, types);
          其中
          clazz = getClass();
          types = (new Class[] {
                      org.apache.struts.action.ActionMapping.class,  org.apache.struts.action.ActionForm.class,  javax.servlet.http.HttpServletRequest.class,  javax.servlet.http.HttpServletResponse.class
                  });

          就是說,DispatchAction只會將參數(shù)固定為以上4中的函數(shù)作為控制器方法使用。

          posted @ 2009-07-27 21:13 wesley1987 閱讀(4250) | 評論 (2)編輯 收藏

               摘要: ActionForm繼承了下ForwardConfig,然后就寫了6個構(gòu)造函數(shù)……然后就沒了 =。=!
          有一句話沒翻譯出來,有看得懂的來幫個忙吧 :
          NOTE - This class would have been deprecated and
          replaced by org.apache.struts.config.ForwardConfig except for the fact that
          it is part of the public API that existing applications are using.
          下面是翻譯后的源碼。
          package org.apache.struts.action
            閱讀全文

          posted @ 2008-12-10 15:53 wesley1987 閱讀(547) | 評論 (0)編輯 收藏

               摘要: package org.apache.struts.action.ActionForm源代碼(注釋翻譯版)

          *一個ActionForm是可以與一個或多個任意的ActionMapping關(guān)聯(lián)的JavaBean。這個bean的里屬性
          * 在對應(yīng)Action.execute方法調(diào)用前,由對應(yīng)的request初始化。
          *
          * 當(dāng)這個bean的屬性被賦值后,Action.execute方法調(diào)用之前,bean的validate方法
          * 將被調(diào)用,這個方法用來校驗用戶提交的屬性值。如果發(fā)現(xiàn)錯誤,就返回一個包含了這些錯誤內(nèi)容的
          * error信息。controller將返回至相應(yīng)的輸入表單。如果無錯誤,validate方法就返回null,
          * 相應(yīng)的Action.execute方法將被調(diào)用。
          *  閱讀全文

          posted @ 2008-12-09 21:48 wesley1987 閱讀(683) | 評論 (0)編輯 收藏

               摘要:   閱讀全文

          posted @ 2008-12-09 19:22 wesley1987 閱讀(691) | 評論 (0)編輯 收藏

               摘要:   閱讀全文

          posted @ 2008-12-09 18:31 wesley1987 閱讀(3471) | 評論 (0)編輯 收藏

          今天調(diào)試web工程的時候,前一分鐘還正常,后來重新部署了一下,就頁面也打不開了。
          org.apache.jasper.JasperException: Unable to read TLD "META-INF/c.tld" from JAR file "file:/F:/Tomcat%206.0/webapps/myweb/WEB-INF/lib/standard.jar":
           org.apache.jasper.JasperException: Failed to load or instantiate TagLibraryValidator class: org.apache.taglibs.standard.tlv.JstlCoreTLV


          在網(wǎng)上搜了很久后,基本給出的解決方法大都是刪除 工程中的JSP-API.jar,可問題是我根本就沒有這個jar。
          tomcat重新安裝好像也不行。包的放置應(yīng)該也沒問題,

          posted @ 2008-11-30 20:52 wesley1987 閱讀(4183) | 評論 (2)編輯 收藏

          主站蜘蛛池模板: 滨州市| 天气| 阿城市| 香港| 华宁县| 焦作市| 汝阳县| 合肥市| 临洮县| 永川市| 龙江县| 丽江市| 营口市| 开江县| 通榆县| 常德市| 北流市| 德保县| 柳江县| 岳阳市| 烟台市| 萝北县| 平乡县| 班玛县| 乌兰县| 蒲江县| 宜春市| 利津县| 垣曲县| 中江县| 杭锦旗| 中宁县| 上栗县| 弥渡县| 苍南县| 临桂县| 元朗区| 十堰市| 海伦市| 濮阳市| 随州市|