解惑

解己之惑,解人之惑

作者:cherami (第25页共82页)

Web Service的方法有很多限制

这个是这段时间发现的,Web Service的方法限制很多,简单的列举下这段时间遇到的:

  • 输入和输出参数不能用Collection等接口,如果用List最好直接用ArrayList,而且ArrayList也不能作为输入参数,只能作为返回值类型
  • 输入参数不能用Class类型
  • ArrayList和Class都可以wrapper以后用,也就是输入参数里面的类型里面包含ArrayList或Class是没有问题的

最后发点感慨,JAXB的默认实现要求比较多,可能是因为JDK的很多类那个时候是没有考虑到这些。

性能测试

上周基于JUnit写了个简单的性能测试框架,其实就是用了下Annotation,发现还是很好用的。

/**
 * Performance test annotation.
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface PerformanceTest
{
    public String name() default "";
    public int times();
    public boolean stopOnError() default false;
}

阅读全文

Cygwin sshd的问题

原来的Lab Manager的环境整个Crash了,我们升级Lab Manager的时候没有做snapshot,重新搭建了整个环境,还好没有浪费什么时间。
原来搭建的自动deploy的环境出问题了,原来我安装的是sshwindows,都是好好的,现在我们换了一个server,美国那边的一个工程师已经安装了cygwin sshd作为ssh server,偷懒不想重新安装,结果不好使,因为很多sshexec失败,最奇怪的一个是:
        <sshexec host="${remote.host}"
         trust="yes"
         username="${user}"
         password="${password}"
         command="net stop ${jboss.service.name}"/>
        
        <waitfor maxwait="300" maxwaitunit="second" checkevery="2000">
            <not>
                <socket server="${remote.host}" port="${jboss.port}"/>
            </not>
        </waitfor>
       
        <sshexec host="${remote.host}"
         trust="yes"
         username="${user}"
         password="${password}"
         command="net start ${jboss.service.name}"/>

第一个sshexec执行成功,第二个失败,两个命令唯一的区别就是一个是stop,一个是start,而且执行的时候控制台都是显示执行成功,最后第二个命令的返回值是-1导致build failed。
禁用原来的cygwin,问题解决,没有时间研究具体的差异了。

2009-3-19 更新:
有时候失败有时候成功,可能是service的问题,返回值不稳定。
sshwindows的问题是它完全不检查返回值,所以没有问题,相对而言,还是cygwin更好一些。

当牛做马

老婆怀孕了,现在家里什么事情都是我做了,自己完全没有时间了,因为她的心理反应比较强烈,每天要陪她讲话,要安慰她,周末经常还要给她做饭吃。
不过好处是发现我的厨艺又一点一点回来了,这几年基本都是她做饭,原来的手艺都生熟了

Ant下通过FTP删除目录

一个很简单的问题,但是google了下竟然发现没有太多的答案,仔细看了下Ant的文档,自己摸索出来了方法:

        <ftp action="del" server="${remote.host}" port="${ftp.port}" remotedir="${remote.dir}" userid="${user}" password="${password}">
            <fileset>
                <include name="test/**/*"/>
            </fileset>
        </ftp>
        <ftp action="rmdir" server="${remote.host}" port="${ftp.port}" remotedir="${remote.dir}" userid="${user}" password="${password}">
            <fileset>
                <include name="test/**/*"/>
                <include name="test"/>
            </fileset>
        </ftp>

好像必须得这样才行,第一步先得把文件全部删除,使用的action是del,然后删除全部的子目录,使用的action是rmdir,删除目录的时候把要删除的那个目录连带也删除。

更换IP

总算拿到我们自己Team的IP段了,今天进行大更换,遇到不少VMWare相关的问题。

第一个就是Virtual Center启动不了,花了好大劲才搞定,原因是更换了IP和主机名,但是安装Virtual Center的时候建立的ODBC数据源连不上了,报的错一直是登录失败,把ODBC数据源更新了下就好了。

第二个问题是Lab Manager里面加Hosts的时候有问题,因为原来加过那些host,所以那些机器里面已经有Lab Manager的Agent了,直接加不行,必须先把那些Agent卸载,卸载完又有另外的问题,hosts文件里面的内容不正确,因为只改了ip没有改hosts文件,按照问题修改hosts搞定。后来配置网络的时候又遇到一个问题,我们用的是虚拟网VLAN,IT告诉了我vlan的id,所以配置的时候我把那个ID也配置上了,结果发现发布的机器不能被访问到,把那个去掉后就可以访问了,呵呵,很迷惑的问题。

PS:列一些相关的路径和命令

  • Virtual Center的启动出错的日志路径:C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter\Logs
  • 修改ESX server的IP: /usr/bin/esxcfg-vswif, 删除IP用 -d vswif0,添加IP用 -a vswif0 -p Service\ Console -i 10.0.0.10 -n 255.255.255.0 -b 10.0.0.255
  • 卸载Lab Manager的Agent用命令:/usr/bin/uninstall-labmanager

添加Google Friend工具

今天看到Google Friend,试了下,感觉有点意思,给自己的这个blog加了,先看看再说了。

SDK下能过,发布到服务器上有问题

今天把代码重构了下,把原来的一个源代码切分成了很多小的源代码,然后import一下,感觉还是很简单的。

遇到一个问题,我其中的一个源代码叫user.py,在本地调试没有问题,发布到Google App Engine就有问题了,在管理控制台下看log发现是因为系统也有一个user.py文件,而导入的时候不知道为什么优先导那一个。另外错误日志把Google App Engine的python的绝对路径暴露了,而且版本也显示了,不是什么大不了的问题。

把user.py重新命名成myuser.py,问题解决。

开始玩Google App Engine

前天同事说把一个吃饭记帐的系统要转移到Google App Engine上,我也顺便注册了,打算给我们自己做一个Scrum的管理系统,因为我们现在还是在用Excel做Scrum的管理,感觉比较土,用点时间做个简单的Scrum系统,功能可以慢慢加,顺便也学习下Python和Google App Engine相关的东西。目前已经刚刚把架子搭好,功能还没有做。

有兴趣用的给我留言,可以把你加为项目管理员。目前只有英文版本,不知道Google App Engine是否支持国际化。

项目的名字叫My Scrum

特殊处理

其实是去年发生的事情,民生的信用卡马上要还款了,但是最后一天晚上发现储蓄帐号里面的钱不够,然后打电话给民生银行,问了下情况,被告知不会每天尝试从储蓄账户扣款,所以即使明天往储蓄账户里面存钱也没有,要到下个月才会再试一次,而利息会按照消费日开始计算,这样就差不多得计息2个多月,而且是高额的利息。我就问那我现在怎么办?等着被扣大笔的利息?好在客服人员说:我现在给你做个特殊处理,明天下午5点以前往信用卡账户上存钱就行了,不会罚息。如获大赦,仓促间也没有问清楚应该存多少钱到信用卡账户,保险起见存了账单全额的钱,后来发现把储蓄卡里面的钱全部扣完了,所以实际上只需要往信用卡里面存不够的部分。

如果你有类似的问题,也可以打电话给银行要求特殊处理。

更早的文章 更新的文章

© 2025 解惑

本主题由Anders Noren提供向上 ↑