24
Feb

简单的玩了下BeanShell

  为了实现工作流中对脚本的支持,简单的玩了一下 BeanShell,这个小小的嵌入式 Java 代码解释器可以将  Java 语言像动态脚本一样执行,几行命令,它就能把一段 Java 代码给玩转。

  工作流中有个这样的简单案例,当一笔单子金额大于 50万时,应该将任务分配给 Senior Agent 处理,否则交给 Junior Agent 处理,我们用 BeanShell 简单模拟这段脚本。

    public static void main(String[] args) throws Exception {
        Interpreter i = new Interpreter();
        i.set(”price”, 1000000);
        i.set(”user”, “”);
        i.eval(”if(price > 500000)\n” +
                “user = \”SeniorAgent\”;\n” +
                “else \n” +
                “user = \”JuniorAgent\”;”);
        System.out.println(i.get(”user”));
    } 

  运行结果是打印出了:SeniorAgent

  可以看出,BeanShell 用非常动态化的方式,完成了我们一个简单的案例的处理,这里,我们只需要将需要解析的 Java 语言的脚本交给 BeanShell 的 Interceptor,并把脚本中用到的参数值传入,就可以了,最后,我们把运算结果赋给一个变量,然后获取变量结果,就可以了。

  看到 Developer Works 网站上有一篇 BeanShell 实现公式管理的文章:http://www.ibm.com/developerworks/cn/java/l-formula/index.html,可以参考一下。

,

22
Feb

电信工作效率有所改善

  宽带昨天已经装好了,电信在服务效率上还是有一定的提升的,不过嘛,业务办理效率依然很低,两次办业务,都等了将近一个小时,不过申请好以后安装,也都只要一天就搞定了,还算不错。

  作为最擅长模仿的腾讯QQ空间,前段时间也模仿开心网推出了朋友买卖和争车位两个游戏,不过嘛,就我个人感觉,还是比不上开心网的同样的游戏好玩,虽然腾讯拥有更多的功能,更炫的界面,不过嘛,都没有真正的吸引我,随便玩了两天就不打算继续玩下去了,为什么呢?因为不好玩。

  其实这个不好玩并不是指腾讯做的东西不好,只是相对开心网的同样的功能,腾讯的人气并不高,这两个游戏可以说是开心网起家之作,吸引了无数的人,虽然嘛,这两个游戏也涉嫌抄袭 facebook,不过嘛,好歹人家在国内也是第一个兴起的,而后来的模仿者再去模仿,就没什么新意可言了,再加上一点,来开心网的人大部分都会玩这两个游戏,而且这种需要很多好友一起玩才好玩的游戏,如果没有人来玩,显然没啥意思。QQ上的人,大部分都是用 QQ 的,偶尔有人在里面玩玩,经常是好友买卖,买回来就再也没人买去了,停车游戏也似乎找不到人一起玩了,于是嘛,回归开心网,继续开心。这样的游戏,更喜欢和一群好友一起玩。

18
Feb

领教合肥电信的服务质量

  一直对电信的服务就很不满意,现在电话要移机,便再度领教了一番合肥电信的非人性化服务。首先嘛,办理 ADSL 移机是要分两次办理,首先办理电话移机,再办理宽带移机,得跑两次营业厅,每次移机要等7到10天,过去在苏州的时候,一次就搞定了,一个礼拜内全部搞定,不知道这是落后地区与发达地区的区别还是什么。反正就觉得合肥电信挺贱的,两年来不优化自己的业务,收费上涨,服务没有什么提高。

  和通讯一号大牌移动比起来,电信甚至连交话费都成为困难的事情,而且电话和宽带还没有放在一起交,我可以用招行给我交上网费,但是交不了电话费,中间还出现了一次电信未经通知的情况擅自修改了缴费号码,导致我交不了费。我的一些用 CDMA 的朋友自从换到电信后,缴费就成了老大难的问题,不过目前似乎没有看到电信在这方面有什么改进,倒是用了很大精力在推销自己的天翼189,这样连缴费都麻烦的东西,用了不是给自己找麻烦么?

  再说下电信的所谓的我的e家这个业务,服务上没有什么提高,价格上迅速飚升,为了限制无线网络的普及推出的限时包月绝对没有电信鼓吹的那样好,什么增值服务大都是垃圾服务,真正值得用的似乎并没有几个。感觉电信有一点还是不错,就是可以看电视的数字机顶盒,不过也是和宽带分上网时间的,当然这个比服务更差的合肥有线还是好一些的,不过价格还是相当贵的,我的宽带加两套有线电视也没这个贵呢。

6
Feb

HttpClient连接的强制释放

  服务器上用 HttpClient 远程调用另一台服务器的一些资源,但是用 netstat 查看经常出现了很多的 CLOSE_WAIT 的连接,最后追查原因,是因为 HttpClient 的 method.releaseConnection() 并不是强制释放连接,为了减小连接数,使用了如下解决方案。在 HttpClient 完成请求后的 finally 块里面这么写。

 

    } finally {

           if (method != null) {

              try {

                  method.releaseConnection();

              } catch (Exception e) {

                  logger.error(“——-> Release HTTP connection exception:”, e);

              }

           }

           if (client != null) {

              try {

                  ((SimpleHttpConnectionManager) client.getHttpConnectionManager()).shutdown();

              } catch (Exception e) {

                  logger.error(“——-> Close HTTP connection exception:”, e);

              }

              client = null;

           }

       }