Java
文章平均质量分 71
mydeman
积极,认真,负责,热情,善于沟通
展开
-
量化交易系统任务框架的演化之路(4)用Push方式解决任务之间的依赖
在上一篇文章《量化交易系统任务框架的演化之路(3)基于多状态的任务依赖解决》中提供了一种利用数据库作为状态数据交换媒介的解决方案,通过这种方法,实现了依赖和被依赖的任务之间解耦,但是问题也十分明显,就是轮询被依赖任务的状态的做法会带来无谓的计算资源的浪费,一旦任务过多,无论是对数据库还是对任务系统本身都会造成一定压力。我们称把这种方法称为Pull,也就是拉取的思路;那么与之对应的就是推送(Push...原创 2018-06-07 17:11:01 · 782 阅读 · 0 评论 -
Java实现对MongoDB的AND、OR和IN操作
在MongoDB的官方文档中关于Java操作的介绍,只给出了很简单的几个例子。这些例子虽然可以满足一定的需求,但是还并不是太完全。下面是我根据网页中的提示写的几个例子。 1.背景。用JUnit4.8.2实现的单元测试的形式。测试数据:{uid:10,use原创 2011-08-02 01:16:25 · 42957 阅读 · 3 评论 -
Java无法连接MongoDB问题
背景介绍: 由于开发用的Linux服务器在一个相对封闭的环境中,只有通过SSH访问22端口。于是就用putty做了一个SSH forwarding,将本机的27018端口映射到远程的27017端口。在cmd中通过mongo localhost:27018成功连接,原创 2011-07-31 00:34:45 · 8926 阅读 · 3 评论 -
Velocity的中文问题
今天做了一个小工具,通过Velocity生成Latext的tex文件,可是当使用Miktex生成PDF时,里面的中文都变成了乱码。而之前在Eclipse直接运行时,并没有发现问题。毫无疑问是文件编码引起的问题。 用Notepad++打开生成的tex文件,发现文件的编原创 2011-07-25 22:44:30 · 4706 阅读 · 1 评论 -
CentOS 上Tomcat7.0.8的tldScanJar错误
同一版本的程序运行在不同OS下相同版本的Tomcat下,只有CentOS出现了tdlScanJar错误。原创 2011-03-15 11:24:00 · 3424 阅读 · 0 评论 -
Open JDK导致的Maven Build出错
今天在CentOS上用maven build项目出现了问题,最后发现是Open JDK的问题。原创 2011-03-09 17:19:00 · 9296 阅读 · 0 评论 -
解决Logback生成的日志文件不能显示中文的问题
logback+slf4j在tomcat中生成的日志文件中中文为乱码,最后通过设置tomcat启动时JVM参数解决了。原创 2011-02-10 16:30:00 · 23521 阅读 · 2 评论 -
Lucene的IndexWriter初始化时的LockObtainFailedException
使用Spring的DiposableBean接口释放IndexWriter创建的锁。原创 2011-02-28 12:03:00 · 7438 阅读 · 0 评论 -
使用ImageMagick + Jmagick进行图片操作(续2)——实现高质量的图片处理
分享两段使用JMagick实现缩略图和黑白效果的代码。原创 2010-11-24 11:20:00 · 2770 阅读 · 0 评论 -
Hibernate初始化时的Could not parse configuration
在加载Hibernate时出来比较诡异的错误,正应了我在调试过程中说的一句话“高手(不过我不是高手)往往栽在小问题上”。原创 2011-01-13 14:47:00 · 26027 阅读 · 12 评论 -
持续集成之路——Maven的Missing artifact问题解决
今天碰到了一个Missing artifact的错误,折腾了好一会儿,记下解决过程。原创 2011-01-10 11:43:00 · 82267 阅读 · 6 评论 -
持续集成之路——搭建Maven私服
搭建Maven私服,可以将外部的第三方和公司内部的开发包统一管理,便于更新。原创 2010-09-25 16:15:00 · 36118 阅读 · 13 评论 -
持续集成之路——Maven(续)
继续上篇文章,说明Maven管理依赖的强大功能。原创 2010-09-01 22:10:00 · 6786 阅读 · 23 评论 -
使用Lucene-Spatial实现集成地理位置的全文检索
Lucene通过Spatial包提供了对基于地理位置的全文检索的支持,最典型的应用场景就是:“搜索中关村附近1公里内的火锅店,并按远近排序”。使用Lucene-Spatial添加对地理位置的支持,和之前普通文本搜索主要有两点区别: 1. 将坐标信息转化为笛卡尔层,建原创 2011-08-21 22:52:39 · 11453 阅读 · 2 评论 -
使用logback轻松管理日志
最近才开始在项目中使用logback,有一种相见恨晚的感觉,因为它很轻易的满足了我的几个需求: 1. 配置简单,易于上手 2. 一个日志文件中只能某一个级别的日志 3. 一个类中可以指定多个不同的日志,并且生成的每个日志文件中只包含其本身原创 2011-08-25 01:34:42 · 59521 阅读 · 2 评论 -
Spring中Aspectj和Schema-based AOP混用引起的错误
前几天要在项目中增加一个新功能用来监控某些模块的运行情况,自然就想到了使用Spring的AOP来实现。之前已经有类似的AOP代码,使用的是Schema-based形式配置的,也就是在Spring的ApplicationContext.xml中加入了: <bean id="handlerBeanNameAutoProxyCreator" class="org.springframew原创 2011-11-08 14:32:05 · 6015 阅读 · 0 评论 -
量化交易系统任务框架的演化之路(5)用Kafka实现分布式计算任务框架
在之前的几篇文章中,都是基于单服务器系统讲解了任务框架的逐步演化,包含了效率、依赖关系、可管理性等几个方面的内容。可是随着量化系统的中因子、信号、数据预处理、日志监控等需求的不断增多,并且大家都知道量化交易系统,是对响应时间有要求的,尤其是对分钟级别甚至tick级别信号的检测等,那么这个时候,单机系统已经无法适应实际需求了,为了提高效率就要考虑通过分布式来提高效率。 在进行下一步之前,我们应该明...原创 2018-06-14 13:24:35 · 1555 阅读 · 0 评论 -
量化交易系统任务框架的演化之路(3)基于多状态的任务依赖解决
在量化交易系统任务框架的演化之路(2)状态管理中为任务引入了一个状态,解决了任务的重入问题,那么还有一个悬而未决的问题:如何解决任务之间的依赖关系?那么今天就来看看如何基于多状态解决任务直接的依赖关系。 假定有两个每天执行一次的任务A和B,任务B要在任务A的执行完毕后才能启动。在设计时,应该考虑到:对于任务A来讲,任务B应该是透明,也就是说任务A不应该知道任务B的存在,这样即使任务B失效了...原创 2018-05-28 22:50:13 · 798 阅读 · 0 评论 -
量化交易系统任务框架的演化之路(2)状态管理
在上一篇文章(量化交易系统任务框架的演化之路(1)定时任务)的结尾提了三个问题,今天就来第一版的解决方案。 之前的实现方案中,所有任务都是无状态、无管理的,人工干预就比较麻烦。其实解决这个问题的方法很简单,那就是增加一个“状态”,看一下这个流程图:Created with Raphaël 2.1.2开始启动running == trueset running = true执行任务执行完毕se...原创 2018-05-25 13:47:41 · 1980 阅读 · 0 评论 -
量化交易系统任务框架的演化之路(1)定时任务
一个完善的量化交易系统不但包含了最基本的选股、择时、回测等基本的任务,而且还包含了众多了独立的任务模块,这些任务模块被设计成可插拔的独立任务。本系列文章将会分别讲解几种不同的实现这些任务模块的技术。定时任务定时执行是一种普遍采用的技术,容易理解也方便实现,很多开发框架都为快速的设定定时任务提供支持。那么接下来我们就具体来看看实现定时任务的技术手段。技术实现系统任务在...原创 2018-05-17 17:11:54 · 2340 阅读 · 2 评论 -
空间换时间,轻松提高性能100倍
空间换时间的最常用场景就是缓存,为了提高性能可以设置不同类型的缓存原创 2017-02-24 13:04:24 · 2822 阅读 · 0 评论 -
Elasticsearch上手 - 遇到的问题
记录在使用Elasticsearch时遇到一些问题。原创 2017-02-26 11:26:37 · 14279 阅读 · 1 评论 -
持续集成之路 —— Mock对象引起的测试失败
今天遇到了一个很奇怪的问题,纠结了好久。在和同事念叨这个问题时,突然想到了问题所在。 问题现象: 在一个Service的单元测试类中有八个测试用例,单独运行时都可以正常通过。可是一旦一起运行时,总是会有固定的两个测试失败。 问题原因:有一个测试用例mock了Service依赖的一个Dao对象,之后的用例再使用这个Dao对象时,就使用了mock,而不是Spring初始化的原创 2013-08-12 15:14:23 · 4683 阅读 · 0 评论 -
持续集成之路——使用SpringTestDbunit管理数据集的一个问题
在进行数据访问的单元测试,一般都会新增数据记录的情况,那么在设置数据集一般会是:然后在测试方法中,通过验证新增的记录数或者新增记录的内容,确保被测试方法正确执行: @Test @DatabaseSetup("user/UserService-addUser-dataset.xml") public void testAddUser(){ User us原创 2013-08-22 09:18:20 · 3751 阅读 · 0 评论 -
持续集成之路——服务层的单元测试
在完成了数据访问层的单元之后,接下来看如何编写服务层(Service)的单元测试。服务层应该是整个系统中得重中之重,严密的业务逻辑设计保证了系统稳定运行,所以这一层的单元测试也应该占很大比重。虽然一般情况下单元测试应该尽量通过mock剥离依赖,但是由于在当前的项目中数据访问层使用spring-data框架,并没有包含太多的逻辑,因此我就把服务层和数据访问层放在做了一个伪单元测试。 一原创 2013-07-24 00:07:53 · 4837 阅读 · 0 评论 -
持续集成之路——数据访问层单元测试遇到的问题
在编写数据访问层的单元测试时,遇到不少问题,有些问题可以很容易Google到解决方法,而有些只能自己研究解决。这里分享几个典型的问题以及解决方法。先交代一下用到的测试框架 Spring Test + SpringTestDbUnit + DbUnit。一、先说一个低级的问题。Spring通过标签提供对内存数据的支持,形如:可是在启动时,却总是提示错误:Caused by: org.xml.sax.原创 2013-07-19 00:09:42 · 15259 阅读 · 0 评论 -
Eclipse无法直接运行Maven构建的webapp
最近开发的一个项目一直存放在移动硬盘上,结果前天由于查了多个设备,盘符就变了,Eclipse也就找不到了项目。把项目拷回本地磁盘后,重新打开。直接Run On Server,提示ClassNotFoundException,找不到Spring ApplicationContext。进到%ECLIPSE_WORKSPACE%\.metadata\.plugins\org.eclipse.wst.se转载 2012-09-12 13:49:46 · 5138 阅读 · 0 评论 -
最近使用Eclipse遇到的几个问题
自从用了Eclipse以后就再也没有更换过IDE,虽然期间也尝试过NetBeans、Idea等,但是总感觉用起来不顺手,快捷键也找不到,最后还是回归了Eclipse。不过,Eclipse偶尔也会耍耍小脾气,出现一些莫名其妙的问题。下面三个就是这一段时间经常碰到的。 1、在Eclipse中Run On Server时会提示ClassNotFoundException。原创 2011-11-08 23:40:41 · 7284 阅读 · 0 评论 -
使用ImageMagick + Jmagick进行图片操作(续)
ImageMagick在Linux配置相对Windows麻烦一些,重点要注意的就是环境变量的设置。原创 2010-09-01 15:55:00 · 4379 阅读 · 6 评论 -
使用ImageMagick + Jmagick进行图片操作
ImageMagick是一个很不错处理图片的开源软件,并且提供了很丰富的开发接口,使用比较方便。不过开源也有开源的问题,版本的一致性是比较重要的。原创 2010-08-30 15:45:00 · 3786 阅读 · 0 评论 -
在Linux(RHEL4)上安装JDK
虽然在RHEL4上已经自带了JDK,但是有时候还是需要安装其他版本的JDK,以满足项目的需求。在RHEL4上安装JDK5.0的步骤:1、从http://java.sun.com/j2se上下载jdk1.5.0_12的Linux版本:jdk-1_5_0_12-i586.bin;2、下载完成后,JDK的暗转文件会被存放到指定的下载目录,这里假定为放在桌面上;3、打开终端,输原创 2007-06-15 09:54:00 · 1493 阅读 · 0 评论 -
Eclipse远程调试之服务器配置(2)
2 Resin对于Resin,可以自己写一个启动的脚本,启动Resin服务器。脚本内容如下:@echo offREM set JAVA_HOME=JDK或JRE的安装目录REM set PATH=%JAVA_HOME%/bin;%PATH%set RESIN_HOME=Resin的安装目录httpd -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,s原创 2007-06-15 09:48:00 · 1094 阅读 · 0 评论 -
MyEclipse5.1开发Spring Struts Hibernate应用时的数据库问题
使用Eclipse3.2+MyEclipse5.1开发Spring+Struts+Hibernate应用,使用自动生成的applicationContext.xml和hbm可能文件会出现以下两个问题:1、在进行数据库操作时,发生连接数据库错误,异常信息大致如下:org.hibernate.exception.GenericJDBCException: Cannot open connection原创 2007-06-15 09:47:00 · 1647 阅读 · 0 评论 -
JSTL和EL一起使用的问题
今天第一次使用JSTL就遇到了问题,发生异常:According to TLD or attribute directive in tag file, attribute value does not accept any expressions。测试环境为:Tomcat5.5、JDK1.5.9于是把例子和已经发布的系统进行对比,发现了如下差别:系统中web.xml开始为http://j原创 2007-06-15 09:29:00 · 1262 阅读 · 0 评论 -
jTDS连接SQL Server时的Connection refused
这几天从原来的服务器上check out出一个工程,使用的是Spring+Hibernate的轻量级架构,数据库是SQL Server2000,数据源使用的jtds。可是原本运行正常的程序无论如何也跑不起来,连接数据库时,总是出现java.sql.SQLException: "Network error IOException: Connection refused: connect"。原创 2007-06-15 09:26:00 · 3452 阅读 · 1 评论 -
学习JavaFX Script,第二部分:使用RMI进行远程通信
原文地址: http://java.sun.com/developer/technicalArticles/scripting/javafxpart2/ 本系列的第一部分向Java程序员介绍了JavaFX脚本编程语言的语法及语义。本文在您对JavaFX脚本认知的基础上进行描述,调用Java平台的远程方法调用(Remote Method Invocation,Java RM翻译 2007-08-21 17:22:00 · 3199 阅读 · 1 评论 -
JavaFX脚本入门
原文地址: http://www.onjava.com/pub/a/onjava/2007/07/27/introduction-to-javafx-script.html JavaFX是什么? 在2007年春季Sun发布了一个新的框架,叫做JavaFX。这只是一个通用性的名字,因为JavaFX有两个主要的组成部分:脚本(Script)和移动(Mobile),并且,将来翻译 2007-08-17 15:54:00 · 3365 阅读 · 0 评论 -
学习JavaFX Script,第一部分:针对Java程序员的JavaFX介绍
原文地址:http://java.sun.com/developer/technicalArticles/scripting/javafxpart1/ JavaFX Script编程语言(以下称为JavaFX)有Sun微系统公司开发的一种declarative, statically typed(声明性的、静态类型)脚本语言。如Open JavaFX(OpenJFX翻译 2007-08-15 17:29:00 · 3789 阅读 · 0 评论 -
SVG(JSR 266)开发入门指南
该文章转载自J2ME开发网,本文版权归原作者和J2MEDEV所有。 SonyEricsson的W950 M600和P990是基于Symbian平台的手机,并且手机上实现的是Symbian Java Platform 3。在SJP-3中提供了对Scalable Vector Graphics的支持,本文说明如何从文件中装载生成SVG Image以及如何在代码中创建SVG I转载 2007-08-12 14:37:00 · 1687 阅读 · 0 评论 -
Oracle TNSListener不能启动
在Windows服务器管理器中,手动启动OracleOraHome90TNSListener服务时发生错误,错误信息为:不能启动OracleOraHome90TNSListener服务,错误3:系统找不到指定路径。查看服务属性,发现“可执行文件路径”为空,原来是服务器找不到可执行文件的路径。 错误原因:在Oracle安装完成以后,曾经修改过计算机名。 修改方法:打开注册表编辑器原创 2007-07-17 16:18:00 · 4242 阅读 · 0 评论