05 2013 档案
摘要:上一篇博文《RMI初步》我们简单讲述了RMI的实现原理和demo,现在讲讲我们在某项目中基于Flex和RMI开发的自动化部署工具。需求描述: 我们的项目部署主要包括两部分,jar包和Flex编译生成的swf文件,特别是swf文件可能文件较大,且在系统试运行期间部署可能非常频繁。如何将其快速地部署到几十台机器的集群上,且出错能迅速rollback回之前的版本将是我们面临的一个问题。后来我们开发了这样一个工具,大体思路是:使用adobe air开发成一个.exe格式的工具,安装后可以快速将本机的文件上传到该软件的server上(此server相对各个集群机器而言是RMI的Client),然后...
阅读全文
摘要:RMI(remote method Invocation)自从Java1.1便出现了,是Java之间远程调用的基础,EJB便是构建在其基础上的。但只能是Java对象之间的RPC,不支持异构系统调用。当然,异构系统之间的调用我们一般用WebServices(在通信、金融行业也有广泛使用重量级的CORBA作为解决方案)。其实无论是异构系统的RPC还是JVM之间的RMI,核心思想都是类似的,主要是Stub和Skeleton对象在近端和远端充当中介。在RMI中这两个对象在底层处理了,对程序员是透明的。我们使用一个简单的例子描述RMI的简单使用方法,下一篇文章我们描述项目中一个真实的应用:Flex+..
阅读全文
摘要:在使用Flex组件时,我们常常会遇到复杂组件要求。如:对DataGrid加一列全选、或对DataGrid加一列图表、改变DataGrid的表头为一张图片等。此时,Flex为我们提供的组件已经不能满足我们的需求,我们需要使用内联组件ItemRenderer去自定义一些功能。下面我们使用一个例子演示使用ItemRenderer给DataGrid的一个Column嵌入linkButton,点击触发linkButton的方法:1、假如我们有如下一个DataGrid:<dc:SuperDataGrid width="100%" height="100%" d
阅读全文
摘要:当我们删除表里数据时,当此表主键作为外键时可能比较麻烦。特别是自关联的场合将非常麻烦(本表其他字段外键引用本表id)。此时我们考虑到两个命令:truncate与delete。truncate:是一个DDL语句,优点是效率高,在删除大表数据时很快。但一个很大的问题也是因为他是ddl语句,将会被自动提交事物,不可undo或者rollback。delete:与truncate相反,delete命令可以回滚,但在删除数据的过程中将产生大量恢复信息以备rollback,所以将会很慢。OK,回到我们的问题上来,现在我们如果想删除一个自表外键关联的所有数据,若直接truncate将会报:ORA-02266:
阅读全文
摘要:在struts2做Excel下载时,IE没问题,但在chrome中有如下问题:收到了来自服务器的重复标头 来自服务器的响应包含重复标头。此问题通常是由于网站或代理配置不正确导致的。只有网站或代理管理员才能解决此问题。 错误 349 (net::ERR_RESPONSE_HEADERS_MULTIPLE_CONTENT_DISPOSITION):我们收到了多个截然不同的“Content-Disposition”标头。我们不允许此行为,以防遭到 HTTP 响应拆分攻击。经过检查,在代码中的response头信息是:super.getResponse().addHeader("Conten
阅读全文
摘要:项目组的DBA对java不太熟,最近他在做数据清洗和迁移时遇到一个容易被忽视的问题,解决过程贴出来,备忘。 当他对Oracle之前一个Date类型字段(比如名为“column”)结果集进行操作:...略...java.sql.Date date = rs.getDate("column");...略... 上面的语句返回一个java.sql.Date,将此date原封不动set到另一个preparedStatement:...略...pstmt.setDate(index,date);pstmt.executeUpdate();conn.commit();...略... 一
阅读全文
摘要:提起模板引擎,大多数做J2EE的人第一反应是freemarker。毕竟freemarker出的时间早,使用的人也较多,常在互联网项目中使用。freemarker比起jsp来说不用编译,速度更快。但我们项目组的View层主要是Flex富客户端搞定,有模板引擎需求的时候选择了相对简单和轻量的velocity。下面回顾一下自己用velocity模板引擎写了一个代码生成器。业务背景: 系统中共有千余张表。主要的申请信息、注册信息、流程信息约有400余张表。由于用户人为操作原因、录入/校对失误、系统BUG等难免会有错误数据出现。对错误数据的纠正之前总局内长期依赖于计算机处管理员用TOAD/PL SQL.
阅读全文
摘要:51劳动节前几天,折腾着重装64位之后,之前vmware6.5中的RedHat还想继续用。换装了新的vmware9之后,发现连不上网了,经过尝试解决了,记录下来。1、使用最简单的桥接(Bridged)2、在网络连接中将vmware的虚拟网卡(下图中两个vmware network adapter)设置成DHCP自动获取IP。3、进入RedHat,然后startx命令打开图形界面。setup命令打开RedHat的Tools。选择网络配置(Network Configuration)4、进入“编辑设备参数”:5、选择网卡:6、设置和物理机同一网段的ip、mask、gateway参数:编辑RadHa
阅读全文

浙公网安备 33010602011771号