<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    qqjianyue代碼工

    砌java代碼
    posts - 62, comments - 9, trackbacks - 0, articles - 10
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    The prefix "tx" for element "tx:advice" is not bound

    這個錯誤的原因很簡單是:

    我們在定義申明AOP的時候。。沒有加載schema。

    具體表現如下:

    <beans>

     <tx:advice id="txAdvice" transaction-manager="transactionManager">  
         <tx:attributes>  
             <tx:method name="get*" read-only="true"/>  
             <tx:method name="*" propagation="REQUIRES_NEW" rollback-for="Exception"/>  
         </tx:attributes>  
     </tx:advice>

     <!-- aop代理設置-->  
     <aop:config proxy-target-class="true">   
    ....

     </aop:config>

    </beans>

    這時會拋出異常不認<TX>標簽。。起先還以為是沒有加載JAR包呢。。

    后來讀AOP文檔才發現<beans>中要加入“xmlns:aop”的命名申明,并在“xsi:schemaLocation”中指定aop配置的schema的地址

    配置文件如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="  xmlns:xsi="  xmlns:aop="  xmlns:tx="  xsi:schemaLocation="http://www.springframework.org/schema/beans
                        
    http://www.springframework.org/schema/beans/spring-beans.xsd
                        
    http://www.springframework.org/schema/tx
                        
    http://www.springframework.org/schema/tx/spring-tx.xsd
                        
    http://www.springframework.org/schema/aop
                        
    http://www.springframework.org/schema/aop/spring-aop.xsd">

    這些才是最關鍵的地方。。后面的配置不變。。。。

    posted @ 2008-08-30 00:01 Qzi 閱讀(1179) | 評論 (0)編輯 收藏

    如果在/sandh/web-inf/classes下面沒有ehcache.xml這個文件,會報這個錯誤,No configuration found.

    Configuring ehcache from ehcache-failsafe.xml found in the classpath:.....這個文件是hibernate緩存配置文

     

    <ehcache>
     <diskStore path="java.io.tmpdir"/>
     <defaultCache
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="10000"
        timeToLiveSeconds="10000"
        overflowToDisk="true"
     />
      <cache  name="com.hour41.hibernate.vo.common.City"
        maxElementsInMemory="10000"
        eternal="false"
        timeToIdleSeconds="10000"
        timeToLiveSeconds="10000"
        overflowToDisk="true"
     />
    </ehcache>

    上面配置了默認類緩存和城市類緩存策略:

    <diskStore>表示當內存緩存中對象數量超過類設置內存緩存數量時,將緩存對象寫到硬盤,path=”java.io.tmpdir

    ”表示把數據寫到這個目錄下。Java.io.tmpdir目錄在運行時會根據相對路徑生成。
    <defaultCache>表示設定緩存的默認數據過期策略。
    <cache>表示設定用具體的命名緩存的數據過期策略。
    name表示具體的緩存命名。
    maxElementsInMemory表示cache中最大允許保存的對象數據量。
    eternal表示cache中數據是否為常量。
    timeToIdleSeconds表示緩存數據鈍化時間
    timeToLiveSeconds表示緩存數據的生命時間。
    overflowToDisk表示內存不足時,是否啟用磁盤緩存。 

     

    將上面代碼另存為ehcache.xml存放在lib/classes里面即可!

    posted @ 2008-08-28 21:20 Qzi 閱讀(3281) | 評論 (0)編輯 收藏

    1:配置文件applicationContext.xml問題
        org.springframework.orm.hibernate3.HibernateTransactionManager 與  
        org.springframework.orm.hibernate3.LocalSessionFactoryBean出現問題.
        解決方法:
        這兩個出現紅色的小x其實是與三大框架集成的時候,包沖突有關,首先刪除asm-2.2.3.jar 然后加入
        spring-hibernate3.jar,commons-pool.jar,commons-dbcp.jar包,上述的問題解決!

    2:asm包問題
        spring與hibernate的沖突.兩個框架都依賴asm.jar包spring的版本是asm-2.23.jar.hibernate依賴的是asm.jar 
        方法1:只刪除asm-2.23.jar包
        方法2:所有asm開頭的jar包,和一個cglib-2.1.3.jar都刪除,上網下載一個最新的asm-all-3.0.jar加進去
    兩種方法都試一下,有些人方法1行,方法2不行,有些人相反。

    3:使用MeEclipse的時候,可能的警告:
    java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
    CGLIB Enhancement failed
    解決方案:
    在使用Spring的AOP編程時,會用到這幾個lib:
    asm-2.2.2.jar
    asm-commons-2.2.2.jar
    asm-util-2.2.2.jar
    Hibernate使用如下lib:
    asm.jar
    asm-attrs.jar
    其中asm-2.2.2.jar與asm.jar存在類上的沖突!!!
    使用其中之一或兩者都使用,可能會出現如下錯誤:
    java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
    java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
    java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
    解決辦法是:
    1.去掉類路徑上的關于Hibernate的3個lib
    asm.jar
    asm-attrs.jar
    cglib-2.1.3.jar
    2.加入Spring中的以下4個lib
    asm-2.2.2.jar
    asm-commons-2.2.2.jar
    asm-util-2.2.2.jar
    cglib-nodep-2.1_3.jar

    3:注意以上的刪包要確保tomcat服務器里面的包也被刪了,否則有殘留的時候,測試出錯。
    所以在框架集成時經常遇到,包沖突與少包問題,大家注意一下!哈哈!

    posted @ 2008-08-28 12:12 Qzi 閱讀(2782) | 評論 (1)編輯 收藏

    “從 char 數據類型到 datetime 數據類型的轉換導致 datetime 值越界”
     錯誤的注意羅,下面是SQL Server下兩種變量的詳細介紹,時間值越界的明顯就會報這個錯誤
     
    datetime
    smalldatetime

    代表日期和一天內的時間的日期和時間數據類型。
     
      datetime

    17531199991231的日期和時間數據,精確度為百分之三秒。如下表所示,把值調整到.000.003、或.007秒的增量。(曾經試過使用1752有錯,1753就沒有錯了,郁悶啊!)

    microsoft&reg;sqlserver™拒絕所有其不能識別為1753年到9999年間的日期的值。
      smalldatetime
    190011207966的日期和時間數據精確到分鐘。29.998秒或更低的smalldatetime值向下舍入為最接近的分鐘,29.999秒或更高的smalldatetime值向上舍入為最接近的分鐘。
      --returnstimeas12:35
      selectcast(2000-05-0812:35:29.998assmalldatetime)
      go
      --returnstimeas12:36
      selectcast(2000-05-0812:35:29.999assmalldatetime)
      go
     
    注釋
    microsoftsqlserver
    用兩個4字節的整數內部存儲datetime數據類型的值。第一個4字節存儲basedate之前或之后的天數。基礎日期是系統參考日期。不允許早于175311datetime值。另外一個4字節存儲以午夜后毫秒數所代表的每天的時間。
    smalldatetime
    數據類型存儲日期和每天的時間,但精確度低于datetimesqlserversmalldatetime的值存儲為兩個2字節的整數。第一個2字節存儲190011后的天數。另外一個2字節存儲午夜后的分鐘數。日期范圍從190011207966,精確到分鐘。

    posted @ 2008-08-28 11:34 Qzi 閱讀(1691) | 評論 (0)編輯 收藏

    第一條:javascript非常脆弱,請一定要小心,不要敲錯一個單詞,也不要異想天開地理解js函數,出現一點差錯都搞死人。改善方法是:多點copy,使用firefox的firebug也是調試javascript的好方法。

    1.getElementsByTagName(tagName)可以使用很多元素對象來調用,我沒有全試過,所以不敢打包票,不過基本上就是你想要用到的標簽,都可以使用它來獲得他的子標簽array,不管幾層以內。

    2.getElementById只能用用document對象來調用,你試一下看看div能否使用這個函數找到他的子標簽,答案是否的。 頁面上的id可以直接用作變量名來引用標簽對象。

    3.getElementsByName也只能用在document對象,然后不是任意一個標簽都有name,注意有些標簽沒有name的,你異想天開地為任何標簽都加個name屬性,結果就是這個name并不能用來索引這個標簽。

    4.form元素里面的input元素可以通過.id或者.name的方式獲得其中元素, 即使隔著div和table都可以. 但是div和table是無法這樣從form中獲得的, form里面的元素也無法從table和div中使用這種方法獲得.

    注意"s"的區別,唯一性

    innerHTML屬性可以改變span里面的值, 但是innerText卻不行,不知道為什么.

    最好的調試方法,alert函數。

    以上不敢包正確,但是的確是我自己測試以后得來的,改變了自己以前很多的想法,原來設計者搞得那么卑鄙的,弄死人了。

    歡迎補充,有關[]的使用來代替函數查找,我還沒有試驗。

    posted @ 2008-08-27 18:57 Qzi 閱讀(1024) | 評論 (0)編輯 收藏

    javascript是經典的敏感性語言,小小問題都會導致整體功能出錯。

    自己調用document.form[0].submit()的時候,會出現submit is not a function錯誤(使用firefox的firebug調試,非常好用),原因是頁面的form中出現具有name=submit的元素,這樣會影響到javascript調用submit()函數,改掉那個name=submit的元素即可。

    另外submit提交struts1.2的action時候,如果后面跟有?method=***等的參數,那么注意,這個函數里面不要出現有method等關鍵字。
    例如函數:
    function changeAction(methodArg, wayArg){
     with (document.forms[0]) {
      action="<html:rewrite page='/BgdInfoReportAction.do'/>?method="+ methodArg + "&way=" + wayArg;
      submit();
     }
    }
    使用?method=***是在使用dispatchAction時候的做法原來我的參數名稱是method和way,
    結果報錯:Action[/BgdInfoReportAction] does not contain method named post
    原因是?后的method變得沒有效,那么這個submit提交使用默認的post方法提交(servlet默認分為post和get方法嘛),
    后來我將method改成methodArg和way改成wayArg,這個action就能夠正確執行。
    我重復測試改與不改的效果,仍然與上面一樣。總結原因可能是是javascript的一些關鍵字沖突,所以盡量使用特殊一點的字符串作為變量名。

    posted @ 2008-08-27 15:42 Qzi 閱讀(4079) | 評論 (1)編輯 收藏

    安裝cvsnt

    直接雙擊運行cvsnt安裝文件,安裝過程中可以選擇以經典、自定義和完全三種方式安裝,在自定義方式中可以選擇安裝路徑。安裝完成后,在控制面板里出現一個CVSNT Server的項目,圖標是一條魚~~

    配置cvsnt

    安裝完成cvsnt后,就可以從控制面板中那條魚來配置cvsnt了。首先,你要新建一個目錄用來存放cvs倉庫,我用的是G:\CVSROOT。這里需要先了解兩個概念:cvs倉庫和模塊。我是這樣理解的,cvs倉庫相當于VS里一個解決方案,它可以包含多個項目,即模塊。

    打開cvsnt的控制面板后,可以看到7個選項卡,分別是:Server Information,用于查看服務器信息及一些簡單的統計信息;Respository configuration,配置CVS倉庫,包括添加、刪除等;Server Setting,配置服務器運行的一些參數,諸如端口、加密、壓縮等選項;Capatiblity Options,有關兼容性的選項,在這里主要配置一個兼容非cvsnt客戶端的版本響應為cvs 1.11.2;Plugins,插件配置,安裝完成可以不用管的~;Advanced,安裝完成后也不用管了;About,在這里可以管理cvsnt服務的狀態,停止或啟動cvsnt和cvsnt lock服務。

    其實簡單來說,custom換默認設置安裝完成后,要設置的東西只有兩個:cvs倉庫和服務器設置。

    服務器設置:設置Run as為系統管理員帳號Administrator,或者新建一個本地用戶,專門用于cvs。使用一個新建的本地帳戶的好處是可以使用NTFS的權限控制來保證服務器的安全,例如我當前的用戶是flora。

    CVS倉庫設置:進入Respository configuration選項卡,點擊Add,出現添加CVS倉庫的對話框,Type選擇Standard即可,然后在Location里輸入之前新建的用于存放CVS倉庫的文件夾,我用的是D:\cvs,在Name里會自動轉換成一個可以用的CVS倉庫的別名,比如我用的是“/cvs”,其他的都默認,確定后cvsnt會詢問你所添加的CVS倉庫目錄沒有初始化,是否進行初始化,點“是”就行了,cvsnt會自動初始化指定的目錄,初始化完成之后,可以在里面看到一個CVSROOT的文件夾,這個文件夾存儲很多配置信息的。

    用戶設置配置完CVS倉庫后,為了使CVS能使用帳號進行訪問而不是使用windows用戶,需要添加普通使用用戶。

    打開cvs control panel(在開始菜單里面的快捷方式或者控制面板),server setting中run as 選擇具有windows管理者權限的用戶,應用。例如我當前的flora。在cvs control panel的about中重啟一下cvs。


    打開一個cmd,設置一下cvsroot環境變量,輸入:

    set cvsroot=:pserver:flora@127.0.0.1/cvs

    注意,這里的flora是當前windows用戶名,既run as中選擇的那個,/cvs是之前添加的CVS倉庫的別名,如果你的設置不同,請把它們替換成自己的值,以后不再說明。

    接著cvs login命令登錄CVS服務器,因為添加用戶時沒有設置密碼,因此可以不輸入密碼直接回車登錄:

    添加普通新用戶
    cvs passwd -a -r flora jianyue
    jianyue是你想新添加的用戶名 flora指定現在用具有admin權限的用戶來創建jianyue用戶
    否則出現錯誤信息:Only administrators can add or change another's password
    這條命令后就可以設置這個用戶的密碼。
    成功后可以使用這個用戶了


    在Myeclipse中連接cvs服務器:
    在還沒有沒有添加cvs版本控制的工程上(已添加了的,菜單會有所不同)
    在工程名上右鍵->team->share project->create a new repository location,填入必須的信息,像我的是本地的,就填:
    host:localhost
    Repository path:cvs(上面配置時候的那個倉庫別名)
    填上合適的用戶名與密碼,我這里是jianyue  密碼hello
    端口與類型,如果服務器沒有修改過的話,都用默認的就行
    這樣子,這個工程文件就會被上傳到CVSROOT目錄上,本地的文件系統打開這個目錄,也可以看見被上傳的工程。
    以后就可以方便的使用版本控制了。

    上面的方法對于忘記用戶密碼的情況也可以解決,在cmd使用系統用戶登陸cvs,就可以按照上面步驟重建那個用戶,修改其密碼,
    cvs會默認覆蓋這個用戶。

    posted @ 2008-08-22 11:21 Qzi 閱讀(8818) | 評論 (0)編輯 收藏

    出現warning log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester.sax).信息的經典處理方法:

    在eclipse下工程的src目錄下新建文件名為:log4j.properties
    內容為:

    log4j.rootLogger=WARN, Console

    log4j.appender.Console=org.apache.log4j.ConsoleAppender
    log4j.appender.Console.layout=org.apache.log4j.PatternLayout
    log4j.appender.Console.layout.ConversionPattern=(%r ms) [%t] %-5p: %c#%M %x: %m%n

    log4j.logger.com.genuitec.eclipse.sqlexplorer=DEBUG
    log4j.logger.org.apache=WARN
    log4j.logger.org.hibernate=WARN

    項目編譯的時候會自動copy到WEB-INF/class目錄下,這樣tomcat啟動的時候,就可以啟動log4j消息機制。
    這個機制的最大好處是將一般不會顯示出來的問題顯示在console上,方便發現隱秘的錯誤,特別是當你不知道哪里錯,
    但是網站的確有問題的時候。

    posted @ 2008-08-21 14:54 Qzi 閱讀(288) | 評論 (0)編輯 收藏

    在tomcat的目錄conf\Catalina\localhost下,可以增加xml文件,來指向file系統中任意一處作為網站系統的子根目錄,例如:
    atcs.xml文件:

    <!--

        Context configuration file for the Tomcat Host Manager Web App

        $Id: host-manager.xml 303743 2005-03-11 22:39:26Z remm $

    -->


    <Context path="/atcs" docBase="D:\WorkSpace\Huadu_Atcs3\WebContent"
    privileged="true" antiResourceLocking="false" antiJARLocking="false">
    </Context>

    其中docBase指向站點的根目錄,path與文件名相同(在此為atcs),這個path最好也要與docBase下的WEB-INF下的web.xml里面的 
      <context-param>
        <param-name>webAppRootKey</param-name>
        <param-value>atcs.root</param-value>
      </context-param>
    paraam-value相同。
    三者相同的情況下,才可以正確的訪問網站(訪問方式:http://localhost:8080/atcs)這樣就作為localhost的一個子站點可以運行了。

    常見錯誤:多個工程目錄下的web.xml文件的<param-value>atcs.root</param-value>相同,就算在tomcat的conf下配置不同的名,例如配置atcs2.xml指向另外一個工程目錄,但是恰巧那個工程下的web.xml里面也配置相同的webAppRootKey,那么將會出現其中一個工程不能夠訪問的問題。
    網頁出現經典的The requested resource (/atcs/) is not available錯誤!

    問題發現方法:在myEclipse下配置log4j,之后會將一些不會報出來的錯誤亦會報出來,根據信息就可以發現是相同的webAppRootKey覆蓋問題。在此我的log4j的報錯信息:
    Web app root system property already set to different value: 'atcs.root' = [D:\workspace2\Huadu_Atcs3\WebContent\] instead of [D:\WorkSpace\Huadu_Atcs3\WebContent\] - Choose unique values for the 'webAppRootKey' context-param in your web.xml files!

    log4j的配置問題參考:http://m.tkk7.com/jianyue/archive/2008/08/21/223500.html

    posted @ 2008-08-21 14:48 Qzi 閱讀(818) | 評論 (0)編輯 收藏

    僅列出標題
    共5頁: 上一頁 1 2 3 4 5 
    主站蜘蛛池模板: 亚洲成在人线在线播放无码| 亚洲av无码一区二区乱子伦as| 亚洲成年网站在线观看| **aaaaa毛片免费同男同女| 久久狠狠高潮亚洲精品| 久久99国产乱子伦精品免费| 亚洲AV无码专区电影在线观看 | 91天堂素人精品系列全集亚洲| 久久精品无码专区免费| 久久被窝电影亚洲爽爽爽| 免费人成视频在线观看网站 | 二区久久国产乱子伦免费精品| 不卡一卡二卡三亚洲| 久久国产精品免费一区| 亚洲AV无码成人精品区在线观看| 99久久精品免费视频| 亚洲精品伊人久久久久| 国产成人啪精品视频免费网| 久久久WWW成人免费精品| 精品日韩亚洲AV无码一区二区三区 | 亚洲男人天堂2017| 成人免费在线看片| 亚洲精品无码专区在线播放| 免费大片黄手机在线观看| AAA日本高清在线播放免费观看| 久久亚洲国产成人精品性色| 成人免费午夜视频| 亚洲第一视频在线观看免费| 亚洲综合精品香蕉久久网97| 日本一道高清不卡免费| 黄视频在线观看免费| 亚洲国产亚洲片在线观看播放| www.亚洲精品.com| 中文字幕免费在线看线人| 99亚洲精品卡2卡三卡4卡2卡| 亚洲人成中文字幕在线观看| 久久精品a一国产成人免费网站| 一级美国片免费看| 亚洲国产高清美女在线观看| 亚洲女人被黑人巨大进入| 18禁美女黄网站色大片免费观看|