weiqiuhong's profile我的地盤PhotosBlogLists Tools Help

Blog


    April 17

    MSN的断层2008

      很长时间没有上MSN的博客了,建了一个又一个的blog,但又被我一个又一个的丢弃。。今天回头看自己以前写的文字,有种漠然回首的错觉,就像迟暮的老人看着年轻人,心里感叹我也曾经年轻过一样,而我的blog中年现在确是一片空白,不能连灌起来。。使我竟有一丝悔意,想去弥补一样,这才有了这篇文字。。

     2008年对于中国来说,要被历史记录的东西太多,三一四,五一二,以及零八零八。。。(先去做事,回来再续)

    November 09

    用java在不同操作系统下安装PERL组件

    需求:用JAVA语言实现WINDOW和LINUX系统下自动安装PERL组件的功能。
     public void execNormalInstall(String modulename) {
            Runtime runTime = Runtime.getRuntime();
            Process process = null;
            try {
                if (System.getProperty("os.name").toUpperCase().indexOf("WINDOWS") >= 0) {
                    modulename = modulename.replaceAll("::", "-");
                    String path = CorePlugin.getDefault().getPreferenceStore().getString(ITalendCorePrefConstants.PERL_INTERPRETER);//安装PERL的目录 ex:E:\Perl\bin
                    path = path.substring(0, path.lastIndexOf("\\"));
                    process = runTime.exec("cmd /c start /D" + path + "\\" + " ppm install " + modulename);
                  // process = runTime.exec("cmd /c start /D" + path + "\\" + " /B ppm install " + modulename);// "/B"不打开DOS窗口
                } else if (System.getProperty("os.name").toUpperCase().indexOf("LINUX") >= 0) {
                    String command = "perl -MCPAN -e 'install " + modulename + "'";
                    openTerminal(command, process);
                }
            } catch (Exception e) {
                MessageBoxExceptionHandler.process(e);
            }
        }
      public static void openTerminal(String command, Process process) {
            String terminal = System.getenv("TERM");
            try {
                process = Runtime.getRuntime().exec(new String[] { terminal, "-e", command + "; $SHELL" });
                process.waitFor();
            } catch (IOException e) {
                System.out.println(e.getMessage());
            } catch (InterruptedException e) {
                // TODO: handle exception
            }
    当然如果是linux,需要安装gcc的编译器,之前不懂PERL,也没用过LINUX,浪费好几天,在LINUX下还有个权限问题。
    July 17

    regular expression

       因为要改一个关于正规检验的BUG,所以有幸学习了下正规表达式的语法。在网上看了很多资料,越看越糊涂,直到找到下面这个网址:http://www.blogjava.net/xuechen0721/archive/2007/01/01/91320.html
      很不幸的是,虽然明白了正规表达式的语法,但是哪个BUG直到我写这个网志时,还被我设为“suspend”。具体情况如下:
     
    July 13

    获取主目录以及子目录下某一类型的文件

       两种方法,一种采用递归:
    1.
    public class FileListExample {
     
     public static void main(String[] args) {
         
      String directory= "C:/TDDOWNLOAD";
      
          firstMethod(directory);
     }
     public static void firstMethod(String dir)
     {
      String directory=dir;
            String filemask       = "*.txt"+"$";
            String currentFilePath="";
            filemask = java.util.regex.Pattern.compile("[*]").matcher(filemask).replaceAll(".*");
            boolean case_sensitive = true;//大小写敏感
      java.util.regex.Pattern fileNamePattern = java.util.regex.Pattern.compile(filemask);
      if(!case_sensitive){
             fileNamePattern = java.util.regex.Pattern.compile(filemask, java.util.regex.Pattern.CASE_INSENSITIVE);
      }      
       java.io.File file=new java.io.File(directory);
            java.io.File[] files= file.listFiles();
            for (int i = 0; i < files.length; i++){
             if(files[i].isDirectory())
             {
                 currentFilePath = files[i].getAbsolutePath();
              firstMethod(currentFilePath);//递归调用
             }else
             {
              if(!fileNamePattern.matcher(files[i].getName()).find()){
            continue;
           }
              String currentFileName = files[i].getName();
           currentFilePath = files[i].getAbsolutePath();
                    System.out.println("currentFilePath:"+currentFilePath);
             }
       
       
            }
     }
     
    }
    2.利用监听器

    public class FileListExample2 {
     
     public static void firstMethod(String dir)
     {
      String sourceDir= dir;
      java.io.File file = new java.io.File(sourceDir);
       String filemask       = "*.txt"+"$";
          filemask = java.util.regex.Pattern.compile("[*]").matcher(filemask).replaceAll(".*");
      boolean case_sensitive = true;
      java.util.regex.Pattern fileNamePattern = java.util.regex.Pattern.compile(filemask);
      if(!case_sensitive){
             fileNamePattern = java.util.regex.Pattern.compile(filemask, java.util.regex.Pattern.CASE_INSENSITIVE);
      } 
      final java.util.List<java.io.File> list_ = new java.util.ArrayList<java.io.File>();
      file.listFiles(new java.io.FilenameFilter() {
       public boolean accept(java.io.File dir, String name) {
        java.io.File file = new java.io.File(dir, name);
        if (file.isFile()) {
         list_.add(file);
         return true;
        } else {
         file.listFiles(this);//此处是关健啦!
        }
        return false;
       }
      });
      for(int i=0;i<list_.size();i++)
      {
       java.io.File files =list_.get(i);
       if(!fileNamePattern.matcher(files.getName()).find()){
        continue;
       }
          String currentFileName = files.getName();
       String currentFilePath = files.getAbsolutePath();
                System.out.println("currentFilePath:"+currentFilePath);
      }
     }
     public static void main(String[] args) {
      String directory= "C:/TDDOWNLOAD";
          firstMethod(directory);
      
     }
    }
     
    July 10

    CentricCRM

       前段时间接触了CentricCRM这个东西,是个Tomcat的project,但是我们要用的不多,只是http-xml api的部分。大部分资料来源于它的官方网站:http://www.centriccrm.com/ProjectManagement.do?command=ProjectCenter&section=Wiki&pid=58&subject=Centric+CRM+Tools+Package
     我自己觉得这个东西做的不是很好,别的功能我没用,但就http-xml api部分,应该还有很大的空间可以完善。(说这话,好像我很专业,其实嘛都不懂。。嘻!)也许是我还未更深入的研究透它的东西,就先将了解的部分写下来吧。
    1.配置服务器
    http://www.centriccrm.com/ProjectManagement.do?command=ProjectCenter&section=File_Library&pid=109&folderId=273网站down下cntricCRM 4.1.1.exe.(你可以根据OS来选择CRM的server,我嘛只会用windows,就down了个windows版的)。建议在安装CRM之前,最好装个数据库,常用的数据库就可以了。我自己安装了mysql.
    2.配置CRM相关信息
    安装完CRM后,记得开启tomcat,或点击CRM桌面图标,或打开IE直接输入http://127.0.0.1/centric进入centric配置页面了,就按要求填写。大体上分四步:
    Step 1:  Setup the file library//我按默认了,直接点“继续”
    Step 2:  Setup external servers (mail, fax)//这一步信息比较多,主要是Centric CRM Configuration Server Settings,其实也什么特别的,我就按自己的想法乱填写了,最后也没出啥错。
    Step 3:  Setup the database//这一步,选择你之前安装资料库,建立好访问用户、资料库名,这样centric会将它的数据放入你填写的库中.我的是mysql,还必须将驱动程序放入tomcat下的centirc的lib目录里。
    Step 4:  Setup the Centric CRM administrative user account//最后一步是配置你登录CRM系统的用户了。
    全部配成功后,按继续,系统会自动导入http://127.0.0.1:8080/centric/index.jsp登录画面了,用刚才最后一步配置的用户登入,就可以了,这样centricCRM的Server就配置成功了。
    3.using http-xml api
     利用XML来传输,其实和XMLRPC的原理是一样的。它的官方网站上也写的很清楚。就根据它的Action类型来看好了。
    select: 
     
     
     
     
     
     
     
     
    July 05

    一口气睡了20个小时

      昨天玩游戏玩到2点,猪猪两点多还发短信给我,说他好想我,睡不着,我回了短信,就开始睡觉了。。一直迷迷糊糊的,现在终于知道为什么要晚上睡觉了,我就晚上少睡了几个小时,就用今天一整天来补睡,外面街道的卡拉OK故意跟我做对是的,一直唱,唱的有点心烦,但是我还是可以睡着的,只是乱做梦,一会去打怪兽,一会又回家了,就这样反反复复的,醒来也没力气起床吃饭,就一直睡,看见电脑都有点讨厌它,睡到现在才开始有点意识。。。猪猪说他昨晚5点多才睡,今天还上了一天班,听起来蛮惨的。。。我不行了,身体不好,不能熬夜。。以后不敢这样瞎折腾了,其实那游戏没嘛意思。这个想法是在我昨晚最累的时候,手都动不了,胳膊抬不起来,。。以后不玩了,医生说我要锻炼。。。我以后去找些阳光的事情来做。。。。
    July 04

    好想打游戏

      上周末极无聊,就跟一网友去学打游戏了,没想到就狂迷上了,连做梦都在跟怪兽打仗。丫的,这两天天天回家打游戏,谁我都不想理,只是网络有点慢,郁闷的要死。。。就目前看来还有点好处,呵,每晚9点半-10点半网最慢,就去呼呼啦。要么就去75下弱小动物。。。。。。。。然后再呼呼去。。。现在终于明白猪猪为啥爱玩游戏了。。可是现在才发现他玩的都是小儿科,跟不上时代了。。等他来深圳,让他帮我换家网络。。。以后猪猪玩游戏,我绝对不说。。。。但是我玩游戏,猪猪也别拦着。。。嘻嘻!!!!!
      今天猪猪问我要啥礼物。。。。我想都没想就说要化妆品。。。对啊,通宵玩游戏很容易变老,脸上出来好多细纹,本来就不显年轻。。切切。。。。要去额头纹和眼角纹的。。。最好是看你那个漂亮女同事,皮肤好的。没有皱纹的女同事。。用啥护肤品。给草草买回来。。。
    只是我没玩游戏时,也没时间去护肤,大部分时间都用来呼呼了。。上次猪猪去北京,我那时一腔热血的想学英语,就让猪猪买了好记星,可是回来还是被我打游戏打的没电了。。。现在自动学习设置还在以a开头的单词里。。。早上去看时,上面都一层尘土了。。。。等猪猪回来去换个电池,我再学英语。。。
    July 03

    好爽的日子

        男人和女人天天腻在一起,一点也没意思,但是你身处其中时,你并不自知,整天会为些绿豆大的事情吵架。。。也很容易忘掉除了他还有更精彩的日子。。。。。。有次问老大,你幸福吗?“幸福啊,有人可以聊天,有孩子可以玩玩,有工作可以做。。。”。。。其实幸福很简单。。。工作中解决一个难题时,那种满足感是幸福;一天努力工作,回家路上的充实感也是幸福;被朋友夸漂亮,那种愉悦感也是幸福。。。
      有人会失眠,呵,我不会,我属于哪种没心没肺的。。如果我要睡觉,就算你敲罗打鼓,也甭想拦我去见周公。。。其实这种感觉好爽。,也被公司新同事称为幸福,哈哈!呵,对比来着。。公司新来的小女生说晚上睡不好。。。神经衰弱。。。嘻,对了,还有我家顺子,也会失眠。。说我是头猪,站着都能睡,。。也有点对吧,我一坐公交车,一晃一晃的,,,就呼呼去了。。好几次被拉到终点站,给乘务员叫醒的。。
      顺子出差的日子,其实我过的好爽,心里话。。。想干哈就干哈,想睡就睡,想吃就吃,想玩通宵游戏就玩通宵游戏。。没人管。。。。挺实蛮爽的,这也就是我为什么要说不要和男人腻在一起,没嘛意思,时间都用来吵架了。。听到没有?周某人。。。。。。。。哈哈!
    June 28

    xmlrpc

    RPC是Remote Procedure Call的缩写,中文意思就是远程过程调用,就是本地的机器上调用远端机器上的一个过程(方法),这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。按照“数据即程序”的观点来看,RPC无非是借助一些通信手段来互相传递数据(信息),所也她也是“高”层次的通信手段,无非是这种通信手段看起来更像是“过程的调用”,因为她往往以一个“函数”的面目示人,从而掩盖了她交换信息的实质。
    XMLRPC,就是应用了XML技术的RPC。那么什么是XML了?
    XML和RPC一样也是一个东西的缩写,这个东西就是eXtensible Markup Language,中文意思就是可扩展标记语言,标记语言就是那种用尖括号(<>)括来括去语言,比如说HTML。XML的可扩展性也体现在它只定义了语言的格式,而并没有定义过多的关键字,也就是通常所说的标记(Tag),所以用户可以自由地选择定义标记。它的这种自由和简单的语法规则也使得它广为流传,被用来表示各种数据。XML在XMLRPC充当什么角色呢?答案就是“交换的数据格式”。在XMLRPC中数据将是XML格式的。
     
    哈哈,以上说的好专业,声名下,是我从别的地方COPY来的。。不过下面的例子嘛,确是我自己辛勤学习的成果啦。。从这个网站上学来的滴:http://ws.apache.org/xmlrpc/client.html
    1。先写个客户端和服务器通讯的类
      package org.apache.xmlrpc.demo;
     
        public class Calculator {
                    public int add(int i1, int i2) {
                            return i1 + i2;
                    }
                    public int subtract(int i1, int i2) {
                            return i1 - i2;
                    }
        }
    2。建立server程式。提供两个server端:
    第一种:
    package org.apache.xmlrpc.demo.webserver;
      import java.net.InetAddress;
      import org.apache.xmlrpc.common.TypeConverterFactoryImpl;
      import org.apache.xmlrpc.server.PropertyHandlerMapping;
      import org.apache.xmlrpc.server.XmlRpcServer;
      import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;
      import org.apache.xmlrpc.webserver.WebServer;
      public class Server {
          private static final int port = 8080;
          public static void main(String[] args) throws Exception {
              WebServer webServer = new WebServer(port);
           
              XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer();
              MyServlet myservlet=new MyServlet();
              myservlet.newXmlRpcHandlerMapping() ;
              PropertyHandlerMapping phm = new PropertyHandlerMapping();
              /* Load handler definitions from a property file.
               * The property file might look like:
               *   Calculator=org.apache.xmlrpc.demo.Calculator
               *   org.apache.xmlrpc.demo.proxy.Adder=org.apache.xmlrpc.demo.proxy.AdderImpl
               */
    //          phm.load(Thread.currentThread().getContextClassLoader(),
    //                   "MyHandlers.properties");
              /* You may also provide the handler classes directly,
               * like this:
               * phm.addHandler("Calculator",
               *     org.apache.xmlrpc.demo.Calculator.class);
               * phm.addHandler(org.apache.xmlrpc.demo.proxy.Adder.class.getName(),
               *     org.apache.xmlrpc.demo.proxy.AdderImpl.class);
               */
                       phm.addHandler("Calculator",
                                   org.apache.xmlrpc.demo.Calculator.class);//用这种方式加载通讯
                       
                       
              xmlRpcServer.setHandlerMapping(phm);
           
              XmlRpcServerConfigImpl serverConfig =
                  (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();
              serverConfig.setEnabledForExtensions(true);
              serverConfig.setContentLengthOptional(false);
              webServer.start();
          }
      }
     
    第二种:
    a.必须建立一个properties的文件,名字必须为XmlRpcServlet.properties,必须放在org.apache.xmlrpc.webserver的包下面。
    内容如下:Calculator=org.apache.xmlrpc.demo.Calculator
    b.可以加验证:
    package org.apache.xmlrpc.demo.webserver;
    import org.apache.xmlrpc.XmlRpcException;
    import org.apache.xmlrpc.XmlRpcRequest;
    import org.apache.xmlrpc.common.XmlRpcHttpRequestConfig;
    import org.apache.xmlrpc.server.AbstractReflectiveHandlerMapping;
    import org.apache.xmlrpc.server.PropertyHandlerMapping;
    import org.apache.xmlrpc.server.XmlRpcHandlerMapping;
    import org.apache.xmlrpc.webserver.XmlRpcServlet;
     
    public class MyServlet extends XmlRpcServlet {
              private boolean isAuthenticated(String pUserName, String pPassword) {
                  return "username".equals(pUserName) && "password".equals(pPassword);
              }
              protected XmlRpcHandlerMapping newXmlRpcHandlerMapping() throws XmlRpcException {
                  PropertyHandlerMapping mapping
                      = (PropertyHandlerMapping) super.newXmlRpcHandlerMapping();
                  AbstractReflectiveHandlerMapping.AuthenticationHandler handler =
                      new AbstractReflectiveHandlerMapping.AuthenticationHandler(){
                              public boolean isAuthorized(XmlRpcRequest pRequest){
                                  XmlRpcHttpRequestConfig config =
                                      (XmlRpcHttpRequestConfig) pRequest.getConfig();
                                  return isAuthenticated(config.getBasicUserName(),
                                      config.getBasicPassword());
                              };
                      };
                  mapping.setAuthenticationHandler(handler);
                  return mapping;
              }
      }
    c.servletServer
     package org.apache.xmlrpc.demo.webserver;
      import org.apache.xmlrpc.webserver.ServletWebServer;
     import org.apache.xmlrpc.webserver.XmlRpcServlet;
      public class ServletServer {
          private static final int port = 8080;
          public static void main(String[] args) throws Exception {
              ClassLoader cl = Thread.currentThread().getContextClassLoader();
              //XmlRpcServlet servlet = new XmlRpcServlet();
              MyServlet servlet=new MyServlet();
              ServletWebServer webServer = new ServletWebServer(servlet, port);
              webServer.start();
          }
      }
    说明:第二种server在加载时是通过读properties文件,来得到通讯的,所以那个文件很重要哟!
    3.Client端,对应server提供两个类:
    package org.apache.xmlrpc.demo.client;
      import java.net.URL;
    import org.apache.xmlrpc.client.XmlRpcClient;
    import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
    import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
    import org.apache.xmlrpc.client.util.ClientFactory;

      public class Client {
          public static void main(String[] args) throws Exception {
              // create configuration
              XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
              config.setServerURL(new URL("http://127.0.0.1:8080/xmlrpc"));
              config.setEnabledForExtensions(true); 
              config.setConnectionTimeout(60 * 1000);
              config.setReplyTimeout(60 * 1000);
           
              XmlRpcClient client = new XmlRpcClient();
           
              // use Commons HttpClient as transport
              client.setTransportFactory(
                  new XmlRpcCommonsTransportFactory(client));
              // set configuration
              client.setConfig(config);
             
             //  make the a regular call
              Object[] params = new Object[]
                  { new Integer(3), new Integer(2) };
              Integer result = (Integer) client.execute("Calculator.add", params);
              Integer ss=(Integer) client.execute("Calculator.subtract", params);
              System.out.println("3 + 2 = " + result);
              System.out.println("3 - 2 = " + ss);
          }
      }
     
    package org.apache.xmlrpc.demo.client;
      import java.net.URL;
    import org.apache.xmlrpc.client.XmlRpcClient;
    import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
    import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
    import org.apache.xmlrpc.client.util.ClientFactory;

      public class Client1 {
          public static void main(String[] args) throws Exception {
              // create configuration
              XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
              config.setServerURL(new URL("http://127.0.0.1:8080/xmlrpc"));
              config.setEnabledForExtensions(true); 
              config.setConnectionTimeout(60 * 1000);
              config.setReplyTimeout(60 * 1000);
              config.setBasicUserName("username");
              config.setBasicPassword("password");
              XmlRpcClient client = new XmlRpcClient();
           
              // use Commons HttpClient as transport
              client.setTransportFactory(
                  new XmlRpcCommonsTransportFactory(client));
              // set configuration
              client.setConfig(config);
             
             //  make the a regular call
              Object[] params = new Object[]
                  { new Integer(3), new Integer(2) };
              Integer result = (Integer) client.execute("Calculator.add", params);
              Integer ss=(Integer) client.execute("Calculator.subtract", params);
              System.out.println("3 + 2 = " + result);
              System.out.println("3 - 2 = " + ss);
          }
      }
    4。OK了,其实也可以用tomcat做server,不过这种方法,饿没研究,,有时间可以研究下。。。
     
     
     
     
     

    RSS(2)

      RssOutput就是输出一个xml文件,唯一的要求就是此xml文件要能append...用dom4j的包就OK了。。我在网上有找到一个例子,不错,我采用拿来主义,稍微修改了下,现在成我的了。。呵呵。。
    import java.io.File;
    import java.io.FileWriter;
    import java.util.List;
    import org.dom4j.Attribute;
    import org.dom4j.Document;
    import org.dom4j.DocumentHelper;
    import org.dom4j.Element;
    import org.dom4j.io.OutputFormat;
    import org.dom4j.io.SAXReader;
    import org.dom4j.io.XMLWriter;
    public class EncodingModel {
      
       
        public static void main(String[] args) {
          File file=new File("D:/runtime-talend.product/out1.xml");
          int i=createXMLFile(file.toString());
         
          int j=formatXMLFile(file.toString());
          }
        public static int createXMLFile(String filename){
            /** 返回操作结果, 0表失败, 1表成功 */
            int returnValue = 0;
            Document document = DocumentHelper.createDocument();
            Element booksElement = document.addElement("books");
            Element bookElement = booksElement.addElement("book");
            Element titleElement = bookElement.addElement("title");
            titleElement.setText("标题");
            bookElement = booksElement.addElement("book");
            bookElement.addAttribute("show","yes");
            titleElement = bookElement.addElement("title");
            titleElement.setText("书屋");
            bookElement = booksElement.addElement("book");
            bookElement.addAttribute("show","no");
            titleElement = bookElement.addElement("title");
            titleElement.setText("作者");
            Element authorElement=bookElement.addElement("author");
            authorElement.setText("sugelade");
           
            try{
                OutputFormat format = OutputFormat.createPrettyPrint();
                format.setEncoding("GB2312");//有中文的时,必须得设成GB2312,原因不知,呵!
                //format.setEncoding("utf-8");
                XMLWriter writer= new XMLWriter(new FileWriter(new File(filename)),format);
                writer.write(document);
                writer.close();
                returnValue = 1;
            }catch(Exception ex){
                ex.printStackTrace();
            }
            return returnValue;
         }
        public static int formatXMLFile(String filename){
            int returnValue = 0;
            try{
                SAXReader saxReader = new SAXReader();
                Document document = saxReader.read(new File(filename));
                List list = document.selectNodes("/books" );
                Element booksElement =(Element) list.get(0);
                Element nameElement=booksElement.addElement("name");
                nameElement.setText("魏秋红");//呵,不错,名字终于变成铅字了,挺光荣滴!
                Element sexElement=booksElement.addElement("sex");
                sexElement.setText("女");
                Element moneyElement=booksElement.addElement("money");
                moneyElement.setText("没有");
                Element descElement=booksElement.addElement("description");
                descElement.setText("djfewwfeteauture.jioer");
                XMLWriter writer = null;
                OutputFormat format = OutputFormat.createPrettyPrint();
               format.setEncoding("GB2312");
     //           format.setEncoding("utf-8");
                writer= new XMLWriter(new FileWriter(new File(filename)),format);
                writer.write(document);
                writer.close();    
                returnValue = 1;   
            }catch(Exception ex){
                ex.printStackTrace();
            }
            return returnValue;
         }
    }
    若想追加原文件,用List list = document.selectNodes("/books" ); Element booksElement =(Element) list.get(0);。。。
    这些只是我做RssOutput时的测试类。。。真正的RssOutput代码如下了,呵,看起来会比较吃力的,因为JET自动生成的了。。。
    //标头部分。。
    java.io.File filetRSSOutput_1 = new java.io.File(/**
                     * Start field
                     * tRSSOutput_1:FILENAME
                     */
       "D:/runtime-talend.product/out.xml"/**
                 * End field
                 * tRSSOutput_1:FILENAME
                 */
       );
       org.dom4j.Document documenttRSSOutput_1 = null;
       org.dom4j.Element channelElementtRSSOutput_1 = null;
       org.dom4j.Element titleHElementtRSSOutput_1 = null;
       org.dom4j.Element descriptionHElementtRSSOutput_1 = null;
       org.dom4j.Element pubdateHElementtRSSOutput_1 = null;
       org.dom4j.Element linkHElementtRSSOutput_1 = null;
       if (true && filetRSSOutput_1.exists()) { //append为true时
        org.dom4j.io.SAXReader saxReadertRSSOutput_1 = new org.dom4j.io.SAXReader();
        documenttRSSOutput_1 = saxReadertRSSOutput_1
          .read(new java.io.File(/**
                 * Start field
                 * tRSSOutput_1:FILENAME
                 */
          "D:/runtime-talend.product/out.xml"/**
                    * End field
                    * tRSSOutput_1:FILENAME
                    */
          ));
       } else {
        documenttRSSOutput_1 = org.dom4j.DocumentHelper
          .createDocument();
        org.dom4j.Element rssElementtRSSOutput_1 = documenttRSSOutput_1
          .addElement("rss");
        rssElementtRSSOutput_1.addAttribute("version", "2.0");
        channelElementtRSSOutput_1 = rssElementtRSSOutput_1
          .addElement("channel");
        titleHElementtRSSOutput_1 = channelElementtRSSOutput_1
          .addElement("title");
        titleHElementtRSSOutput_1.setText("aaa");
        descriptionHElementtRSSOutput_1 = channelElementtRSSOutput_1
          .addElement("description");
        descriptionHElementtRSSOutput_1.setText("bb");
        pubdateHElementtRSSOutput_1 = channelElementtRSSOutput_1
          .addElement("pubdate");
        pubdateHElementtRSSOutput_1
          .setText("Sat, 07 Sep 2002 00:00:01 GMT");
        linkHElementtRSSOutput_1 = channelElementtRSSOutput_1
          .addElement("link");
        linkHElementtRSSOutput_1.setText("http://www.baidu.com");
       }
    //主体部分
    if (true && filetRSSOutput_1.exists()) {
         java.util.List listtRSSOutput_1 = documenttRSSOutput_1
           .selectNodes("/rss/channel");
         channelElementtRSSOutput_1 = (org.dom4j.Element) listtRSSOutput_1
           .get(0);
         listtRSSOutput_1 = documenttRSSOutput_1
           .selectNodes("/rss/channel/title");
         titleHElementtRSSOutput_1 = (org.dom4j.Element) listtRSSOutput_1
           .get(0);
         titleHElementtRSSOutput_1.setText("aaa");
         listtRSSOutput_1 = documenttRSSOutput_1
           .selectNodes("/rss/channel/description");
         descriptionHElementtRSSOutput_1 = (org.dom4j.Element) listtRSSOutput_1
           .get(0);
         descriptionHElementtRSSOutput_1.setText("bb");
         listtRSSOutput_1 = documenttRSSOutput_1
           .selectNodes("/rss/channel/pubdate");
         pubdateHElementtRSSOutput_1 = (org.dom4j.Element) listtRSSOutput_1
           .get(0);
         pubdateHElementtRSSOutput_1
           .setText("Sat, 07 Sep 2002 00:00:01 GMT");
         listtRSSOutput_1 = documenttRSSOutput_1
           .selectNodes("/rss/channel/link");
         linkHElementtRSSOutput_1 = (org.dom4j.Element) listtRSSOutput_1
           .get(0);
         linkHElementtRSSOutput_1.setText("http://www.baidu.com");
        }
        org.dom4j.Element itemElement = channelElementtRSSOutput_1
          .addElement("item");
        org.dom4j.Element titleElement = itemElement
          .addElement("title");
        titleElement.setText(row1.TITLE == null ? "" : String
          .valueOf(row1.TITLE));
        org.dom4j.Element descriptionElement = itemElement
          .addElement("description");
        descriptionElement.setText(row1.DESCRIPTION == null ? ""
          : row1.DESCRIPTION);
        org.dom4j.Element pubdateElement = itemElement
          .addElement("pubdate");
        java.text.SimpleDateFormat sdfTemptRSSOutput_1 = new java.text.SimpleDateFormat(
          "EEE, d MMM yyyy HH:mm:ss z", java.util.Locale.US);
        java.util.SimpleTimeZone aZonetRSSOutput_1 = new java.util.SimpleTimeZone(
          8, "GMT");
        sdfTemptRSSOutput_1.setTimeZone(aZonetRSSOutput_1);
        pubdateElement.setText(row1.PUBDATE == null ? ""
          : sdfTemptRSSOutput_1.format(row1.PUBDATE));
        org.dom4j.Element linkElement = itemElement.addElement("link");
        linkElement.setText(row1.LINK == null ? "" : row1.LINK);
    呵呵。。知道你看不懂,我自己明白就好,提供个比较重要的地址:http://cyber.law.harvard.edu/rss/rss.html..
    特别需要提示的是发布Rss的日期格式...RSS 要求日期必须按照 RFC822 日期和时间规范 进行格式化,此格式要求:开头是一个可选的3字母星期缩写加一个逗号,接着必须是日加上3字母缩写的月份和年份,最后是一个带时区名的时间。OVER!

    RSS(1)

    这是我的第一份关于技术的文章。。。。
    前段时间应客户要求,要做两个关于RSS的组件,
    第一个RSSINPUT:Goal of this new component is to read an RSS flow(use RSS tag : title, description, pubDate, and link).
    Parameters : rss url,option : read articles from date ,option limit (read max Y articles, choosed by user)。。
    起先我引入的包是 rsslib4j-0.2.jar(http://www.open-open.com/48.htm),先将代码COPY出来:
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.LinkedList;
    import org.gnu.stealthp.rsslib.RSSChannel;
    import org.gnu.stealthp.rsslib.RSSException;
    import org.gnu.stealthp.rsslib.RSSHandler;
    import org.gnu.stealthp.rsslib.RSSItem;
    import org.gnu.stealthp.rsslib.RSSParser;
     
    public class RssExample {
      
      public static void main(String[] args) {
          Date   d=new   Date(); 
          String rssurl="http://rss.sina.com.cn/sports/global/italy.xml";
          URL url = null;
        try {
            url = new URL(rssurl);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          RSSHandler hand = new RSSHandler();
          try {
            RSSParser.parseXmlFile(url, hand, false);
        } catch (RSSException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          RSSChannel ch = hand.getRSSChannel();
          LinkedList lst = hand.getRSSChannel().getItems();
          String row[]=new String [4];
          for (int i = 0; i < lst.size(); i++) {
              RSSItem itm = (RSSItem) lst.get(i);
             
              itm.getTitle();
              itm.getDescription();
              String str=itm.getPubDate();
             
              itm.getLink();
              System.out.println(itm.toString());
             
              Date   dat=new   Date(str);
              int j=dat.compareTo(d);
           
         }
      }
    }
    这个任务很快就 resolved了,但是过了大概半个月左右,又被打回来,原因是license的问题,此包的license是GPL,
    但是本公司产品的license用的是LGPL,个中原因,我一时半会无法说清,提供个网站,一目了然。。。
    http://hi.baidu.com/%CD%F5%BE%FC/blog/item/922a6059345ad12a2834f013.html
    只好找一个license为LGPL的包来代替啦。。。还好有找到了feed4j.jar...
    import it.sauronsoftware.feed4j.FeedParser;
    import it.sauronsoftware.feed4j.bean.Feed;
    import it.sauronsoftware.feed4j.bean.FeedHeader;
    import it.sauronsoftware.feed4j.bean.FeedItem;
    import java.net.URL;
    public class FeedExample {
     public static void main(String[] args) throws Exception {
            URL url = new URL("http://rss.sina.com.cn/sports/global/italy.xml");
      Feed feed = FeedParser.parse(url);
     
      System.out.println("** HEADER **");
      FeedHeader header = feed.getHeader();
      System.out.println("Title: " + header.getTitle());
      System.out.println("Link: " + header.getLink());
      System.out.println("Description: " + header.getDescription());
      System.out.println("Language: " + header.getLanguage());
      System.out.println("PubDate: " + header.getPubDate());
      System.out.println("** ITEMS **");
      int items = feed.getItemCount();
      for (int i = 0; i < items; i++) {
       FeedItem item = feed.getItem(i);
       System.out.println("Title: " + item.getTitle());
       System.out.println("Link: " + item.getLink());
       System.out.println("Plain text description: "
         + item.getDescriptionAsText());
       System.out.println("HTML description: "
         + item.getDescriptionAsHTML());
       System.out.println("PubDate: " + item.getPubDate());
      }
     }
    }
    引入feed4j.jar(http://www.sauronsoftware.it/projects/feed4j/)时,记得同时要引入dom4j-1.6.1.jar,
    nekohtml.jar,xercesImpl.jar,xml-apis.jar..
    RssInput就OK了。。下一篇说下RssOutPut...其实很多高深的原理。。我并不明白,管它呢。。会用的API就行了。。
    想的太多,,容易老哟。。。
     
    June 26

    又要离职吗?

        一个月前,我很轻松的对经理说要离职的事情。。。这个月我还是尽自己的努力在做事情,我一直在想也许能力是一回事,但是责任更重要吧。。。今天老总问我时,我确给自己要了一个想一下的机会。。。我去征求所有人的意见,男友的,朋友的,。。。甚至网友的。。。他们所有的人都不愿意我离开深圳,而我自己却在犹豫,犹豫我当初的那句轻易抛出去的话,我觉得如果我要留下,出尔反尔的。。。我不喜欢这样的自己。。。。就让我死守我曾经说出去的话吧。。
     

    关于回家

       好长时间没写网志了,一是太懒了,二是时间过的太快,三是现在表达能力太差了。就像黑土说白云一样,七天憋出六个字来。总之,是代码没写好,中文表达能力散失滴的也差不多了。。
        深圳造就了很多独立、坚强的人们,很不巧,我觉得我不是。。我自己能感觉到自己变虚荣了,麻木了,贪财了,甚至同情这个字也在渐渐离我远去。。但是我还是觉得深圳很好,给很多人提供了机会。连要饭的也多些。。。我现在有些迷茫,不知道我要不要回西安?
    June 11

    !#%%R&

      最近学了些新东西,我决定以后也将所学的东西写在blog上,加油加油。。。。
    May 16

    无助

    何去何从......
    March 27

    要把自己当回事

      今天心情不好,也不知为什么,反正就是烦,静不下心了,发呆好长时间.不知道在深圳呆着是为了什么,...很想回家教书去了;很想远离深圳式生活;很想不负责任的回到学校去念书;.....呵,去年应该听话,到学校念书.....说不定现在又在抱怨早知道,该去上班的.哈,人就这么回事吧.....
      可能是这段时间看的越多,越搞不清楚状况,越觉得自己相差好远,有些紧张,也有些压力..呵,承受压力的能力太差了....静下心,静下心,所有的人生下来就只会哭,其它的都是后天学来的,边学边用,边用边学,学以致用....不要拿自己太当回事,也不要把自己不当回事.最起码知道很多地方还需要学,自己给自己加油!!

    kjreoteot

       这段时间一直在学习,到了今天早上回忆起来,前半部分学的不是很清晰..我明白自己好菜,所以还是需要多加努力,努力锻炼身体,也努力提高自己的能力..
    March 16

    不知如何健胃?

        一直胃不好,我以为慢慢调理下就会OK?没想到现在开始痛,一吃东西就会胀,有时会反胃,全吐出来,搞的我好没精力,顺手网上查了些资料,吓的半死:长期如此会产生胃炎,胃溃疡,甚至胃癌.现在也不知要如何调理?尽管中药难喝的要死,但是每次都硬着头皮喝光了,可是没有一点疗效?西药也吃了一堆,就是没有效果?现在的医生好过分,哪天给他们整死了就对了....
     
    胃病,实际上是许多病的统称。它们有相似的症状,如上腹胃脘部不适、疼痛、饭后饱胀、嗳气、反酸,甚至恶心、呕吐等等。 临床上常见的胃病有急性胃炎、慢性浅表性胃炎、慢性萎缩性胃炎、胆汁反流性胃炎、胃溃疡、十二指肠球部溃疡、胃息肉、胃结石、胃的良(恶)性肿瘤, 还有胃粘膜脱垂症、急性胃扩张、幽门梗阻等等。这些胃病在临床上又可根据症状、发病机理进行细分,还有轻重程度的不同。
        胃炎属于胃病的一种,分急性胃炎和慢性胃炎两种。慢性胃炎包括浅表性胃炎、萎缩性胃炎、反流性胃炎、糜烂性胃炎、渗出性胃炎、隆起性胃炎、肥厚性胃炎、疣状胃炎等。
     
     患了胃病后,除了积极治疗外,还需要进行调理。胃病的调理需要注意以下几个方面:
    1 、注意饮食
        a、饮食的选择:刺激性的、酸性的、产气性的食物不要吃;
        b、饮食的量:饮食的多少跟胃的工作量和负担有很大关系,尽量少量多餐,有规律地进食;
        c、饮食的温度:胃对温度比较敏感,忽冷忽热对胃的刺激很大,饮食以温热为佳。红薯、芋头不要吃;鸡蛋少吃。
    2 、日常生活
        不抽烟、不喝酒,不要熬夜,尽量保持心情轻松。
    3 、经常锻炼
        经常锻炼身体,提高身体的免疫力和抵抗力。

    胃病的治疗,离不开平时的保养,特别是需要注意饮食作息方面,如能坚持下列原则,胃病当会好转,并提前痊愈。

    1)保持好轻松快乐的心情。心情好,气血运行舒畅,气机正常运行,胃病自会减轻;

    2)注意作息。不要过劳过虑,劳则伤脾;

    3)舌淡无味者。可以用山楂、酸菜或香茶等食物开胃醒脾;

    4)饭量适当。胃病患者胃气较虚,不应过量饮食。吃饭时应细嚼慢咽;

    5)不要食用辛辣刺激性食物。如大蒜、生葱、酒等;

    6)不要食用生冷食物。如萝卜、芦荟等;

    7)注意天气变化。人禀受天地之气,如天气变化,人体以应之,注意防寒。

    养胃十法
    1. 饭前先吃一点开胃的汤或菜,使胃液分泌活跃起来,使胃处于消化吸收的准备状态。

    2. 饭前饮水要适量,饮水过多会稀释胃液,使消化能力减弱。

    3. 吃饭时细嚼慢咽。

    4. 吃饭要心情愉快。

    5. 食物温度要适中,过冷或过热都会伤害胃壁,同时要注意胃部不要受寒。

    6. 不可暴饮暴食。

    7. 饮后充分休息,使胃肠能够正常工作 。

    8. 养成定时进餐的习惯 。

    9. 饮酒要适量。

    10. 要了解自己的胃。就像人的性格一样,胃的个性也各不相同,只有了解胃的情况,才能调节好胃。
     
    March 10

    难喝的中药

      不知道中医是如何看病的?我家有三个医生,我爸,大姐,二姐都是医生,而且老二还是中医。。。但是我也不知中医如何看病?我从没见过我家老二是如何把脉??是不是把了脉之后,什么病都了如指掌了。。哈,历害啦。。。不过,中医开的药可就难吃了,一直渗到骨头里。可能真的是良药苦口,希望如此啦。。。
    March 05

    我做的饭太难吃了

       昨天去称了一下,好像又瘦了2斤,不知怎么了,自从学校毕业后,就一直往下瘦,不想在外面吃饭。昨天去外面吃,就看见了一根头发,哽的我要死,出去全吐出来了。。只好自己做饭,我有时好饿,但是只要一吃我做的饭,只吃两口,就饱了,因为我做的太难吃了。。其实我自己做的还不如外面的。。可能太懒了,只想着做些省事的饭,哪就下面条啦,几乎我做饭每次都是面条,说白了,我也不会做其它的。。呵呵。。
    我记得我小时候,每次我妈叫我吃饭,我都懒的去端碗,总是要我弟去搬桌子,端碗。。我老妈就给我讲了一个故事:说是有一个懒汉,很懒。。吃饭都不想动。有一次,懒汉的老婆要回娘家,怕懒汉饿死,就做了一个中间有个孔的大饼套在懒汉的脖子上。。过了几天,他老婆回去后,发现懒汉还是饿死了,他老婆很奇怪,就去看,发现原来懒汉只将脖子前的饼吃光了,脑袋后面的都没动,旁人不明白怎么回事,只有懒汉老婆明白,懒汉太懒了,他是懒的将脑袋后面的饼转到前面来。。我当时只是笑我老娘,哪有那么懒的人。。呵呵,现在看来,我也差不多了,要好好学下如何做饭了,否则,有一天,我可能会真的被我自己养饿死了。。。那时,我妈总骂我是懒汉懦夫,这几个字那个时候我还不会写,还一直以为是个做了坏事的名人哩。。哈哈。。。