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 小平 阅读(1213) | 评论 (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 小平 阅读(1881) | 评论 (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 小平 阅读(2482) | 评论 (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 小平 阅读(559) | 评论 (0)编辑 收藏
如果RMI客户端链接补上服务器可能是以下情况导致的:
1、网络不通
2、端口占用
3、防火墙(客户端机器的防火墙和服务器端的防火墙都有可能)
4、服务器端所在机器安装了linux虚拟机,或者使用的linux或者unix系统
排除办法:
前三种情况都很好解决,主要是最后一个,需要在rmi服务启动时加上一句
java  -Djava.rmi.server.hostname=localhost ……
其中localhost可以强制定义为机器的IP地址 
posted @ 2008-02-15 14:11 小平 阅读(872) | 评论 (0)编辑 收藏
<2008年2月>
272829303112
3456789
10111213141516
17181920212223
2425262728291
2345678

常用链接

留言簿(2)

随笔分类

随笔档案

framework

j2me

java

linux

web

其他

友情链接

素材

最新评论

阅读排行榜

评论排行榜