项目快结束了,总结一下项目中用到的一些技术(一)

Webservice接口:
开发一个webservice接口,能接受其他部门传递的数据,实现技术:myeclipse+xfire+webservice+spring
1.环境搭建网上资料很多,当时采用spring主要是方便管理
2.由于客户端采用的是.net,所以java中用的加密在那边不能起作用,最后考虑到是内网,就直接将验证信息放到方法参数里面!
3.处理的数据量比较多有3w左右,开始实现方法是插入到数据库立马将连接关闭,当每次传入20000左右就报错了,事后就单独写一个关闭方法,在所有数据接受完关闭连接!
SSH:(spring+hibernate+struts)
1.对接受的数据进行过滤,如果存在繁体字,就替换为简体字,实现思路:是将繁体字、对应的简体字存放到数据库中,在处理时候,将数据存放到map里面;过滤是,用key去比对每一个字段,如果存在key就将key换成value;替换是通过string.replace方法去实现
2.工程搭建好:下一个难题是,数据接收后怎么能定时去执行转化功能?
1),思路一,就是在数据接收后马上去执行,在客户端调用了service方法去执行,这样不好控制,因为是两个工程
2),思路二,通过定时器去执行,java里面通过bat是可以实现的,将java类打成jar,然后去执行;由于是web工程,所以没有采用,最后解决方法是:在web工程中配置一个listenner,通过java的timertask去定时去执行,下面是部分方法:

public class dataConvertListener implements ServletContextListener {
private Log logger = LogFactory.getLog(this.getClass()); private static Timer timer;
private static TestTask task = new TestTask();

public void contextDestroyed(ServletContextEvent arg0) {// 销毁
logger.debug("调用contextDestroyed方法");
if (timer != null) {
timer.cancel();
logger.debug("Timer Canceled");
}
logger.debug("contextDestroyed方法执行完成");

}

public void contextInitialized(ServletContextEvent arg0) {// 初始化
logger.debug("调用contextInitialized方法");
try {
timer = new Timer(true);
timer.schedule(task, 0, 2*60*60*1000);
} catch (Exception e) {
e.printStackTrace();
logger.error("Unable to initialize Schedule.");
}
logger.debug("contextInitialized方法执行完成");

}
}

// 要继承定时任务类
class TestTask extends TimerTask {
Logger myLogger = Logger.getLogger("myLogger");
String url = "C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\webapps\\AliF2S\\WEB-INF\\classes\\spring\\applicationContext.xml";
String url_10= "C:\\Program Files\\Apache Software Foundation\\apache-tomcat-6.0.18\\webapps\\AliF2S\\WEB-INF\\classes\\spring\\applicationContext.xml";
UserAction userAction = (UserAction)new FileSystemXmlApplicationContext(url).getBean("userAction");
UserFinalAction userFinalAction = (UserFinalAction)new FileSystemXmlApplicationContext(url).getBean("userFinalAction");
public void run() {
Calendar c = Calendar.getInstance();
if(c.get(Calendar.HOUR_OF_DAY)==2 || c.get(Calendar.HOUR_OF_DAY)==14){
this.flagAliuser();
List list = userAction.listAliuserFlag();
if(list != null){
this.flagAliuserFinal();
this.insertAliuserFinal();
}

}

有点乱,只做参考!
grails+ext:
由于公司采用grails+ext开发报表平台,在安装grails birt插件会去下载一个birtruntime的环境,我当时采用是1.0的插件,但是birt的那个运行环境在远程ftp上已经被删除了,所以解决方法:将grails插件解压,修改
F:\xiazai\grails-plugins\grails-birt-report-1.0\scripts\install.groovy

downloadDir = new File(grailsWorkDir, "download")
downloadPath = downloadDir.absolutePath

birtReleaseDir = "R-R1-2_5_2-201002221500"
birtVersion = "2.5.2"

birtMangledVersion = birtVersion.replaceAll(/\./, '_')
birtMirror = "http://mirror.netcologne.de/eclipse/birt/downloads/drops/${birtReleaseDir}"
birtRuntime = "birt-runtime-${birtMangledVersion}"
birtRuntimeArchive = "${birtRuntime}.zip"

修改成ftp服务器上的存在的目录,安装插件过程中,会下载运行环境;
也可以自己下运行环境,放到.grails的runtime下面!其实如果用插件只是用的platform下的东西!修改后插件通过密令:grails create-plugin 再次生成插件,安装就行

*****如果是用grails插件,一定要注意你的eclipse birt版本,不然将做好的报表放到工程下,启动工程会碰到某某方法不存在的错误,如果版本高了会报什么已经超过最大值了!
由于时间原因下次在写
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值