工作所得

解决中兴彩信加速器(MMSA)的上行问题

  浙江移动新推出了中兴的彩信加速器(MMSA),用来专门接入SP。以前浙江的彩信中心所采用的厂家虽然也有不规范的地方(主要在于编码,在HTTP协议上约定书写为US-ASCII,但实际用GB2312编码),但都没有这次这么离谱。为了能够在AXIS这种标准平台上实现这些“非标准”的webservice,写了几段代码用来修补这种错误。

  错误及解决方法

  1. 错误一
    错误报文
    Content-Type:text/xml;charset=US-ASCII; name=1.xml
    Content-Transfer-Encoding:8bit
    Content-Location:1.xml
    Content-ID:<1.xml>

    <?xml version="1.0" encoding="GB2312"?>
    Parsed in 0.001 seconds

关于自定义协议的字符编码

本来这个是不值得一写的,写下来,以防自己下一次又糊涂了。不过最近的工作效率还真是低的厉害,经常在做无用功,可能真的是太疲劳了。java在内部使用unicode来表示字符的,除非显式地得到它的字节码(调用的本身就是unicode->其他编码的转换过程)。根据这个理论,已经取得的String,其本身的编码是一致的,而通过网络传输时即使指定的编码不是unicode,只要编码和解码所使用的字符集是一致的,那么通常可以认为是行得通的。虽然我曾经看过一些资料,java的unicode字符集到其他字符集转换时,个别字存在转换错误的情况,但是这种情况很少遇到,因此如果赶进度,也可以暂时使用非unicode的编码来

难以琢磨的xmlc

因为漏调了一个xml-apis.jar,导致程序死锁,这个是以前的java程序没有遇到过的。可能是有一个异常处理部分有问题。拦截了所有的异常,但是又死锁了。调了好久才搞定。还在完善中的xmlc让人感觉还只是alph阶段。

MySQL官方的JConnect

因为一直在用Oracle,没什么机会试用新的JConnect JDBC。因为一个旧工程的重新部署,不得已,把原有的数据库迁移到MySQL,也有了个机会使用了一下新版的JConnect。感觉比以前的glt JDBC更具可调性了,毕竟是mysql官方的api,特别是对编码问题有了驱动程序级的调控,这个和resin有点像。可以直接指定链接所使用的编码,而不像大部分西方软件,在多字节平台就会有诸多的毛病。总得来说,新的JDBC还是令人满意的,特别是MySQL也有了InnoDB这样的事务型数据库,中小型应用也可以采用MySQL了。

聚合内容