- 浏览: 176738 次
- 性别:
- 来自: 北京
-
最新评论
-
di1984HIT:
ElasticSearch 与 Solr 的对比测试 -
di1984HIT:
好恐怖~~~
ElasticSearch 的一次非正常master脱离的调查 -
zqb666kkk:
楼主能否测试 下 solr5.2.1和 ElasticSear ...
ElasticSearch 与 Solr 的对比测试 -
sadgod:
无法创建线程,貌似是虚存空间不足了,32位机器的话,创建不了太 ...
ElasticSearch 与 Solr 的对比测试 -
mengfei86:
好文章啊,顶起
ElasticSearch 与 Solr 的对比测试
文章列表
有个框架,本身已经提供了一些 Ajax 访问的代码。如果要自己重新写,不仅
要走 GWT RPC这样的东西,而且服务端的已有框架完全没法利用。所以,想
用 jsni 来把这部分 Ajax 代码引入进来。
第一步,如何把其他js include进来?
办法有两个。一个是在 Html里面,用
<script type="text/javascript" language="javascript" src="/xxx.js"></script>
另外一种,我更喜欢的是放在 .gwt. ...
逻辑删除而不是物理删除,是很常见的需求。我这里是因为要用到 syncml,
所以删掉的联系人也不能真正删除,只能做标记。于是增加一个 status 字段,
如果是 "D"的话,就表示删除。
对于 SmartGWTEE 来说,只要在 datasource 里面定义好了,增删改查
都不用我做。那么,如何用最简单的办法做一个逻辑上的删除?
首先,肯定要自己自定义一个服务端的 DataSource。在 ds.xml 文件当中,
增加这个类的定义:
<DataSource
ID="contactPerson"
...
还是Hibernate,用了以前的代码,在实体 update 之前,使用 PreUpdateEventListener,
对实体当中的 lastModified 属性进行设置。这样,只要实体有 lastModified 属性,这个listener
就会自动的将它的最后更新时间给设置为最新的。
public boolean onPreUpdate( PreUpdateEvent event) {
try {
Object entity = event.getEntity();
Method method = entity.getClass().g ...
接着昨天的事情,继续往下走。
昨天已经成功的把数据源都增加进来了。今天就准备开始上数据了,
测试的客户端使用的是 funambol自带的那个 demo。
拷贝一份 SyncServerServlet 的定义到 web.xml 当中,增加一个 servlet mapping
<servlet>
<servlet-name>SyncServerServlet</servlet-name>
<display-name>SyncServerServlet</display-name ...
目标:想把 Funambol 8.5 集成到 gwt 里面来,提供一个 syncml 的服务。
首先面对的是,funambol缺省只支持 tomcat,而gwt 自1.6以后就是jetty了。
于是,如何添加相应的 jndi datasource?刚开始,仿照安装了之后的 funambol
目录,放入需要的jar文件,启动时自然会报一堆的 class not found 异常,还有 config
目录找不到的问题。等把需要的 jar 文件和 config 目录都拷贝一下放进去之后,开始
出现 jndi 找不到的问题了。
首先是 jdbc/fnblcore 这个 datas ...
使用eclipse 做一个rcp应用,其中要用到一棵树。于是自己写了一个 ITreeContentProvider 的实现,
结果就因为这个bug:https://bugs.eclipse.org/bugs/show_bug.cgi?id=9262
一直有问题,那个树就一直无穷无尽的往下展开同样的一个目录。现象就如那个bug里面提到的:
The view should show ...
root
+ ch1
+ ch2
+ ch21
+ ch22
+ ch23
... but it shows ...
root
+ root
+ r ...
这个异常,我碰到了两次。第一次是刚开始用SmartGWT的时候,碰到这个异常。
当时没多想,刷新了几次就可以了。现在想来,是因为SmartGWT启动的时候,会
自动的将它的资源展开,其中就包含 builtinTypes.xml。而因为我使用 eclipse开发,
这些自动展开的资源,并没有被刷新进eclipse。所以,当我下一次启动eclipse的时候,
eclipse会认为这些资源不存在。好解决,刷新一下eclipse就ok了。
第二次碰到这个异常,是昨天。根据经验主义,又认为是老问题。虽然也有点奇怪,明明
没有更新smartgwt,为啥它也会出现这种问题。于是删了那个目录, ...
在 calendar 当中,增加了一些 EventEditor Fields。
其中有两个 SelectItem,想用这两个 SelectItem 来做联动,但是怎么
也不成功。设置的 criterian 都不起作用。于是想偷懒,其中一个 SelectItem
变化时,把另外一个 disable掉,于是调用 otherSelectItem.disable()方法。
这时候,出现了一个异常,错误是 disable is not a function。
这个时候,不管是 disable 还是 hide,都是这样的一个异常。于是回忆以前曾经
也出现过这种错误,那时候是使用 grid ...
试图搜索一个返回很多结果的关键词时,系统报内存溢出的异常:
java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Arrays.java:2882)
at java.lang.StringCoding.safeTrim(StringCoding.java:75)
at java.lang.StringCoding.access$100(StringCoding.java:3 ...
开发时用hsql做数据库,没什么问题。部署的时候,碰到数据量比较大的情况,
就有点感觉慢了。这个时候,想替换方案时,考虑了几个可能的替代。
一个是mysql,肯定没问题,但是部署麻烦,被否定了。
其他的java数据库,可选的包括 mocki,这个很久没更新,否了。
derby 也就是 java db看起来也不错,不过更让我感兴趣的是 h2 。
就是原来 hsql 的作者另起炉灶写的一个数据库,功能和特性都很强大,见 这儿
我比较喜欢的是它自带了一个管理界面。其他的功能例如能加密存储,也很感兴趣,
还有更强的事务能力什么的。
然后就是一个迁移的问题了。本身它的使用和 ...
其实还是全文检索的需求。对某个目录下的文档都做了全文检索。自然会关注这些文档的变化。
最开始的方案是轮询。每隔一段时间就轮询一次。当做全文检索的文件比较多的时候,这种
轮询需要花费很多的时间。而且,每个文档都要检查是否有更新,就意味着每次都要查数据库,
对数据库的压力也有一些。总之感觉不爽。
于是想着替代方案,最好就是能监听文件的变化。只有文件发生变化的时候,才去更新数据库,
并且更新全文的索引。于是用google搜了一下。发现有不少实现方式还是我使用的那种,采用
轮询的方式。而且大部分都是将关注的文件列表放在内存当中。这对于监听量比较大的情况,就
不适合了。
还搜到 ...
MyCalendarEvent 与一个 Task相关联,也就是个外键,使用 SelectItem来选择相应的 Task。
很自然的就用到了 taskSelectItem.setOptionDataSource( DataSource.get("task"));
按理说这是个很简单的事情,结果就出错了,报告说 getOptionDataSource 是 null。
非常奇怪,如果是个 ListGrid 里面这么用,设置 ListGridField的 optionDataSource就没事。
很是灵异。
于是用FireBug跟踪了一下,在 getO ...
昨天帮一个朋友去调他们公司做的一个系统的性能。说是调了一个星期,并发量还是上不去。
到现场看了一下,是用 spring + hibernate 做到一套系统,使用了 spring 的 MVC,以及
ehcache作为缓存。感觉他们使用 hibernate 的关系太多了,很多 一对多,多对多的关系。
在没有压力的情况下,系统还算正常。只要加压,就经常出现 lazy load的 session closed
异常。而且,在压力的情况下,系统响应速度慢,应用服务器和数据库服务器的压力都很低。
加压使用的工具是loadrunner,分布在5台计算机上模拟vuser,并发上一两百都比较困难 ...
使用 SmartGWT 的 Calendar 还是很简单的,而且还比较好用。
首先看SmartGWT 的 ShowCase,里面用的DataSource 都是 client only的,
这个当然不是我所需要的。于是首先按照 CalendarEvent 类的构造函数,搞了一个
server 端的 Bean,当然是受 hiber ...
SmartGWT 发布了 2.1 版本,我比较感兴趣的新功能有这些:
新的Graphite 皮肤
ListGrid 的Cell当中可以是任意的组件了。
可以显示 row number
ToolStrip 更加象 Toolbar了,还有垂直的 ToolStrip
打印的 View 可定制性更强了,例如可以定义在打印时显示多少行数据,可以和展示的View不一样。
不错,2.0到2.1的一个小版本就提供了这么多新功能,看起来还是很活跃的。
这只是一部分,还有更多的更新,见 http://www.jroller.com/sjivan/entry/smart_gwt_2_1 ...