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

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

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

    posts - 31,  comments - 31,  trackbacks - 0
           這幾天做項目,需要做一個類似于控制臺的界面,可以將日志回顯到一個文本區域里,幾經查找,反復測試寫了以下測試代碼。
    這是log4j.properties的配置內容
        log4j.rootCategory= ,WriterAppender

    log4j.appender.WriterAppender
    =org.apache.log4j.WriterAppender
    log4j.appender.WriterAppender.Threshold
    =debug
    log4j.appender.WriterAppender.layout
    =org.apache.log4j.PatternLayout
    log4j.appender.WriterAppender.layout.ConversionPattern
    =%d{ISO8601} - %- %m%n
    主程序
    import java.io.PipedReader;
    import java.io.PipedWriter;
    import java.io.Writer;

    import org.apache.log4j.Appender;
    import org.apache.log4j.Logger;
    import org.apache.log4j.WriterAppender;

    public class Log4jMain {
        
    static public Logger logger = Logger.getLogger(Log4jMain.class);

        
    public static void main(String[] arg) {
            
            
            Logger root 
    = Logger.getRootLogger();
            
    try {
                Appender appender 
    = root.getAppender("WriterAppender");
                PipedReader reader 
    = new PipedReader();
                Writer writer 
    = new PipedWriter( reader) ;
            
                ((WriterAppender) appender).setWriter(writer);
                
                Thread t 
    = new AaaThread(reader);
                t.start();
                Logger logger 
    = Logger.getLogger(Log4jMain.class);
                logger.error(
    "asdf");
                logger.info(
    "asdf");
                logger.debug(
    "asdf");
                logger.fatal(
    "asdf");
                    //hh是一個class,test方法里只有幾個logger.info("aaa"),用于測試用,這東西可以去掉
                
    new HH().test();

            }
     catch (Exception e) {
            }


        }

        
    }
    因為log4j提供的是 Writer,所以通過使用PipedWriter連接到PipedReader,并通過一個thread來處理PipedReader的數據就可以回顯了。如果你需要的話可以將下面的System.out.println(scanner.nextLine());改成你需要顯示的地方就行了。
    import java.io.PipedReader;
    import java.util.Scanner;

    public class AaaThread extends Thread {
        PipedReader reader;

        
    public AaaThread(PipedReader reader) {
            
    this.reader = reader;
        }


        
    public void run() {
            Scanner scanner 
    = new Scanner(reader);
            
    while (scanner.hasNext()) {
                System.out.println(scanner.nextLine());
            }

        }

    }
    posted @ 2008-06-06 09:31 小平 閱讀(1224) | 評論 (0)編輯 收藏
    這里制作一個引子,具體內容比較多,而且hibernate文檔里的hql篇寫的很詳細
    可以這么用:
    List list = getHibernateTemplate().find("select new map(t1.c1,t2.c3) from table1 t1 ,table2 t2 where t1.c1=t2.c2");
    這樣的話list里的每個元素都是一個map,每個map里包含兩個元素
    注意:這里的table1和table2都是class名并不是真的表名,畢竟這是hql。除了可以用map還還支持list和自定義的bean。


    posted @ 2008-04-17 17:05 小平 閱讀(1893) | 評論 (0)編輯 收藏
    DB2的Type-4驅動真的很詭異,配了兩天沒配上,發現是多引了一個包。就是他----“db2java.zip(db2java.jar)”只要有了他就算你已經引入了db2jcc.jar、db2jcc_license_cisuz.jar、db2jcc_license_cu.jar也沒用。
    不知道怎么回事,本以為多引就沒錯,沒想到載這了。
    順便吧db2 type-4的配置方法貼下面:
    jdbc:db2://ip:port/數據庫
    驅動名:com.ibm.db2.jcc.DB2Driver

    我日他IBM!該死的IBM,我算是服了,配好的type-4驅動中文數據顯示的全是亂碼,準備切到type-2上試試,結構還是不行,查來查去是數據庫pagecode的事,數據庫的字符集改成gbk,客戶端的pagecode也改成跟數據庫一樣的,ODBC算是能用了,type-2也能用了,然后又用type-4一試!連不上了!說字符集不匹配,上網一查說要使用IBM專用的JDK,我日了,換了IBM的JDK,配好環境變量eclipse又不能用了!我算是被IBM搞死了,一氣之下也不準備再嘗試type-4了。
    我這里用的IBM JDK1.4,db2 V8
    posted @ 2008-04-17 16:51 小平 閱讀(2525) | 評論 (3)編輯 收藏

    近日抽風,想了解以下java與串口并口通訊的問題,上網查了半天,找到了sun幾年前的一個破包,comm.jar

    2.0版的,遇到一個比較奇怪的問題,這個包里的demo程序用cmd可以運行,但是用eclipse編譯就不能運行,一直以為是dll庫和配置文件的問題,幾乎將兩個文件copy到了系統中全部可能出現的地方都沒有解決。百般無奈之下,找到了http://blog.csdn.net/djsl6071/archive/2007/04/25/1583979.aspx這個博客,下載了rxtx把問題搞定了。
    posted @ 2008-04-17 16:40 小平 閱讀(574) | 評論 (0)編輯 收藏
    如果RMI客戶端鏈接補上服務器可能是以下情況導致的:
    1、網絡不通
    2、端口占用
    3、防火墻(客戶端機器的防火墻和服務器端的防火墻都有可能)
    4、服務器端所在機器安裝了linux虛擬機,或者使用的linux或者unix系統
    排除辦法:
    前三種情況都很好解決,主要是最后一個,需要在rmi服務啟動時加上一句
    java  -Djava.rmi.server.hostname=localhost ……
    其中localhost可以強制定義為機器的IP地址 
    posted @ 2008-02-15 14:11 小平 閱讀(886) | 評論 (0)編輯 收藏
           為了滿足將plugin工程打成jar包,但是spring的配置文件不打進jar包的需求。很多時候我們為了可以方便手工配置spring的一些信息,而不用將jar解壓而從新壓縮,我們需要把Spring的配置文件放在plugin的jar包外這時,如果沒有正確的使用spring的Resource就不能加載spring的配置文件,經過多次嘗試終于找到一個比較合適的方法,與大家交流。
    public static BeanFactory getFactory() {
            
    if (factory == null{
                FileSystemResource resource 
    = new FileSystemResource("appcontextclient.xml");
                factory 
    = new XmlBeanFactory(resource);
            }

            
    return factory;

        }

            將appcontextclient.xml文件放到工程根目錄下,發布時將appcontextclient.xml放入到你的eclipse的安裝目錄即可(與eclipse的exe執行文件相同的位置),如果需要可在appcontextclient.xml文件前加入相關的路徑來更改你的目錄(但是有可能在調試過程中必須要把appcontextclient.xml文件放到你的eclipse IDE的安裝目錄里,因為大部分時間我們的eclipse IDE是何 workspace分開存放的,這樣我們在調試的時候非常別扭,要到IDE里去修改配置文件)。
            以上方法并不是唯一的,只是我感覺用起來比較合適的,這樣在調試時既可以保證appcontextclient.xml文件在工程目錄范圍內,有可以在發布時使文件保持在安裝目錄而不是運行環境的workspace的臨時目錄里。
            同時介紹幾個方法可以eclipse方法獲得eclipse工具的幾個重要路徑(注:"IDE"為我的plugin工程的PLUGIN_ID)
            Platform.getInstallLocation().getURL()                                                 
            file:/F:/tools/java/eclipse/eclipse-SDK-3.3-win32/eclipse/             
            這是我的eclipse IDE的安裝目錄
                
            Platform.getLocation()                                                                        
            D:/runtime-IDE.product                                                               
            這是我調試插件時生成的臨時運行環境目錄,是在調試IDE工程時生成的,就是發布時插件所屬eclipse運行環境的WorkSpace目錄
                 
            Platform.getInstanceLocation().getURL()                                             
            file:/D:/runtime-IDE.product/                                                       
             這個跟上面的一樣
                 
            Platform.getLocation()                                                                        
            D:/runtime-IDE.product                                                              
             這個跟上面的也一樣
            
            Platform.getLogFileLocation()                                                             
            D:/runtime-IDE.product/.metadata/.log                                         
            運行環境的日志文件路徑,發布時插件所屬eclipse運行環境的WorkSpace目錄下的/.metadata/.log 
             
            Platform.getStateLocation(Platform.getBundle("IDE"))               
            D:/runtime-IDE.product/.metadata/.plugins/IDE                           
            運行環境中IDE的一個臨時目錄,發布時插件所屬eclipse運行環境的WorkSpace目錄下/.metadata/.plugins/IDE
                 
            Platform.getUserLocation()                                                       
            file:/C:/Documents and Settings/XX/user                                     
             這是我的文檔的路徑(把用戶名X掉,哈哈)

            Platform.getBundle("IDE").getLocation()                                    
            update@D:/WorkSpace/IDE/                                                     
            我的IDE工程的路徑,對應發布時插件的jar本身,在這個目錄下的文件將全部包含在發不得jar里。

            Platform.getConfigurationLocation().getURL()       
            file:/D:/WorkSpace/.metadata/.plugins/org.eclipse.pde.core/IDE.product/  
            eclipse IDE 自己建的目錄

            eclipse 本身也有很多加載資源文件的方法可以在org.eclipse.core.runtime.Platform這個類里找到,具體的就請大家找找API吧
    posted @ 2008-01-05 21:35 小平 閱讀(2013) | 評論 (0)編輯 收藏
    應要求在此提供ibatis批量插入demo下載,謝謝大家的關注,不過對于一些人的不禮貌行為我非常痛心。由于工作地點不能上網,不能上網,不能及時回復大家的留言我深表道歉。下載
    posted @ 2007-12-27 19:52 小平 閱讀(3421) | 評論 (9)編輯 收藏
    此問題網上大部分解決方法是這樣的:
    1.網上鄰居->本地連接->屬性->internet協議(TCP/IP)->屬性->高級->wins標簽->去掉啟用LMhosts查詢前的勾.
    2.控制面版->windows防火墻->高級標簽->本地連接設置->服務的標簽里勾選安全Web服務器(HTTPS)即可
    但是我的機器按照上面操作apache服務仍然不可以使用,于是索性將服務中的Windows Firewall/Internet Connection Sharing (ICS的服務關掉了,發現問題解決了,apache可以用了。對于安全問題可以選擇第3方的防火墻來解決。
    注意:費爾防火墻好像和apache沖突,也會導致WSASocket failed to open the inherited socket
    posted @ 2007-10-21 14:53 小平 閱讀(1462) | 評論 (1)編輯 收藏
          今天用sun的jdk調的沒有一點問題的數據抽取程序,方放到AIX上后不能用了,oralce報出向一個字段中插入了過長的數據,可是程序在幾天前還是沒有問題的,后來分析可能是字符集導致的,因為前幾天修改過informix數據庫的字符集由8859-1轉為了zh_cn.gb18030-2000,但解決過程異常艱難,后來吧informix的url改為<value>jdbc:informix-sqli://xx.xx.xx.xx:8888/XXXX:informixserver=whcspdev;DB_LOCALE=zh_cn.gb18030-2000;CLIENT_LOCALE=zh_cn.UTF8(原為zh_cn.gb18030-2000);NEWCODESET=gb18030,gb18030-2000,5488,utf8</value>就可以了。后來猜測了一下原因:
    1、oracle數據庫的jdbc驅動是是自動將數據庫的數據轉為unicode格式,這可能跟java的String默認為unicode有關,為了讓大家方便操作,
    2、sun jdk的String在初始時用的是Unicode格式,ibm的jdk應該也是,但是有一點,sun的jdk在通過informix jdbc驅動取數據時不會將數據轉成其他字符集,而是仍然使用Unicode,而IBM的則是通過CLIENT_LOCALE=zh_cn.gb18030-2000配置將數據格式轉為了zh_cn.gb18030-2000。
    所以在oracle作insert的時候就會由于字符集不匹配而報錯
    posted @ 2007-07-18 19:23 小平 閱讀(998) | 評論 (2)編輯 收藏
    <2007年7月>
    24252627282930
    1234567
    891011121314
    15161718192021
    22232425262728
    2930311234

    常用鏈接

    留言簿(2)

    隨筆分類

    隨筆檔案

    framework

    j2me

    java

    linux

    web

    其他

    友情鏈接

    素材

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 免费看无码特级毛片| 一级黄色免费网站| 91青青青国产在观免费影视| 亚洲伊人久久精品影院| 一级毛片在线免费视频| 国产免费私拍一区二区三区| 无码一区二区三区亚洲人妻| 亚洲Av无码乱码在线znlu| 污视频网站免费在线观看| 亚洲麻豆精品国偷自产在线91| caoporm超免费公开视频| 国产亚洲精品自在线观看| 中文永久免费观看网站| 亚洲VA成无码人在线观看天堂| 一区二区三区福利视频免费观看| 亚洲AV无码第一区二区三区| 免费国产污网站在线观看15| 亚洲综合一区二区精品久久| 国产在线观看片a免费观看| 亚洲欧美熟妇综合久久久久| 亚洲第一区精品观看| 中文字幕免费在线播放| 亚洲精品资源在线| 成年人免费观看视频网站| www亚洲精品久久久乳| 亚洲日韩在线观看免费视频| 免费在线观影网站| 亚洲伊人久久大香线蕉在观| 免费观看大片毛片| 国产vA免费精品高清在线观看| 亚洲国产精品国自产电影| 99久久国产热无码精品免费| 精品亚洲av无码一区二区柚蜜| 亚洲综合色自拍一区| 3d动漫精品啪啪一区二区免费| 亚洲人成人伊人成综合网无码| 免费人成在线观看网站视频 | 亚洲日本国产乱码va在线观看| 最近免费中文字幕4| 国产JIZZ中国JIZZ免费看| 亚洲人成毛片线播放|