2013年5月30日 星期四

SVN ERROR: svn: E160013: File not found

出現這錯誤實在超煩的,篇篇網路文章我又都看不太懂= =(跟svn很不熟) 歸納幾個簡單解決方式:

  1. 先將錯誤以外的其他檔案一一commit(全部解決後只剩一個檔案要對付心情也會比較好)
  2. 把錯誤的檔案使用 svn->revert
  3. commit
  4. 再將原先欲刪除的這個錯誤檔案 svn->delete
  5. commit
我是依照上面這種方式解決的,替自己留個紀錄,畢竟短短一個禮拜就碰到兩次....

2013年5月19日 星期日

Quartz初體驗 - 如何關閉煩人的console output 改用 file方式記錄?


(以quartz 2.1.6為例)

  1. 所需lib:quartz-all-2.1.6.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.1.jar、log4j-1.2.16.jar、c3p0-0.9.1.1.jar (直接至quartz官方網站就可下載)
  2. 創建檔案 log4j.properties,內容如下:
    # Root logger option
    log4j.rootLogger=INFO, file
     
    # Direct log messages to a log file
    log4j.appender.file=org.apache.log4j.RollingFileAppender
    log4j.appender.file.File=C:\\loging.log
    log4j.appender.file.MaxFileSize=1MB
    log4j.appender.file.MaxBackupIndex=1
    log4j.appender.file.layout=org.apache.log4j.PatternLayout
    log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n
    org.quartz.logger.schedLogger.class = org.quartz.impl.Log4jLogger 
    org.quartz.logger.schedLogger.categoryName = scheduler 
    

    log4j.appender.file.File=C:\\loging.log 可自行更改為所需的file outputf路徑
    log4j.rootLogger=INFO, file 自行更改所需的LOG LEVEL,共有:
    TRACE > DEBUG > INFO > WARN > ERROR > FATAL 
  3. 創建檔案 quartz.properties,內容如下:

    org.quartz.scheduler.instanceName = MyScheduler
    org.quartz.threadPool.threadCount = 3
    org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
    org.quartz.logger.schedLogger.class = org.quartz.impl.Log4jLogger 
    
  4. 完成,再下來就是寫CODE囉
記得不要同時置放log4j.xml,否則似乎會以log4j.xml為主

2013年5月16日 星期四

dbunit初體驗 - QueryDataSet.addTable((tableName, query) 出現 org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found:


照者Juni in Action 中的第17章 p338的做法輸入:
QueryDataSet data = new QueryDataSet(_dbunitConnection);
data.addTable("TableName","select * from TableName where id="+value );

卻一直出現

org.dbunit.dataset.DataSetException: java.sql.SQLSyntaxErrorException: user lacks privilege or object not found: value

的錯誤,後來才發現因為我要比較的對象id為String,因此前後應加上單引號,上述應更正如下:
data.addTable("TableName","select * from TableName where id='"+value+"'");

OK 更改完畢,順利通過^^
這個錯誤也有可能是在使用之前Table未建立而產生

2013年5月1日 星期三

Association Aggregation Composition


  • Association
    (1)擁有自己的生命周期(LifeTime)
    (2)物件本身並沒有Owner的觀念
    (3)物件為各自獨立關係(independent)
    (4)UML表示圖為單一箭頭
  • Aggregation
    (1)擁有自己的生命周期(LifeTime)
    (2)擁有Owner(例如:"Manager" object will own "Workers" object.)
    (3)
    (4)UML表示圖為空心菱形
  • Composition
    (1)若Owner生命週期結束,則另一方也結束
    (2)擁有Owner
    (3)關係為緊密相依(dependent)
    (4)UML表示圖為實心菱形

    關係請參考下列圖例:(擷取自3 Important Concepts: - Association, Aggregation and Composition)

關係表:

Association
Aggregation
Composition
Owner
No Owner
Single owner
Single Owner
Life time
Have their own life time.
Have their own life time.
Owners life time
Child object
No Child objects all are independent
Child objects belong to single parent.
Child objects belong to single parent.