2009-06-17 11:19:21 显示全文

运行环境

openSUSE11
eclipse3.4(Ganymede)  linux版
jdk1.6 选择linux版
nutch1.0 

最后更新:2009-06-17 11:19:21
分类:java  |  (共有0条评论)  
2009-05-10 12:59:15 显示全文

fckeditor更新到最新版了

今天把fckeditor更新到最新版2.6.4,由于java版的fckeditor已经包含了文件上传部分,就把自己用struts实现的文件上传部分给替换掉了,新版上传文件用servlet实现,与struts2集成是由冲突,因为FilterDispatcher把上传文件给拦截了,修改了struts2的url-pattern解决。
ConnectorServlet的mapping如下
    <servlet-mapping>
        <servlet-name>Connector</servlet-name>
        <url-pattern>/fckeditor/editor/filemanager/connectors/*</url-pattern>
    </servlet-mapping>
url-pattern不支持正则表达式为了防止过滤/fckeditor/editor/filemanager/connectors/*  把struts2的url-patern修改如下(希望下个版本能支持正则表达式)
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.jspx</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.jsp</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.js</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>*.css</url-pattern>
    </filter-mapping>
    <filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/manager/*</url-pattern>
    </filter-mapping>
另外发布是还出现了如下异常
log4j:ERROR LogMananger.repositorySelector was null likely due to error in class reloading, using NOPLoggerRepository.
有人说是log4j的版本问题,换了其他版本错误依旧,再换回,重启tomcat以上问题没了,出了Error filterStart,打开web.xml Ctrl+Shift+F搞定。
 

最后更新:2009-05-10 12:59:15
分类:建站日志  |  (共有0条评论)  
2009-05-07 02:30:01 显示全文

osgi学习笔记
对osgi有了一个初步的了解之后,准备写段代码跑跑,一试身手,
先下载了一份Bluedavy 的《OSGI实战》
里边有可以直接运行的代码,双击run.bat运行正常,暗爽!
开始练习《OSGI实战》中用户登录验证模块,一行一行敲代码,第一个变化就是工程之间相互引用不能在Build path里添加工程引用了,改成了在MANIFEST.MF当中添加Import-Package
在学习过程当中还是遇到了不少问题,记录下来,帮助遇到和我同样样问题的少走弯路。
我用的是eclipse3.4 jdk1.6 

1.Import-Package时org.eclipse.equinox.servlet.api这个包死活找不到。
在eclipse3.4已经不存在了直接导入javax.servlet_2.4.0.v200806031604.jar就可以了
如果没有添加javax.servlet会出现  INSTALLED   UserValidatorWebBundle_1.0.0
强行启动会抛出以下异常
org.osgi.framework.BundleException: The bundle could not be resolved. Reason: Missing Constraint: Require-Bundle: javax.servlet; bundle-version="2.4.0"

2.如果使用了Equinox OSGI Declarative Service需要下载 eclipse-equinox-SDK-3.4.2.zip 
因为Declarative Service实现并没有包含在Eclipse的默认软件包中,需要单独从 Eclipse 的的网站上获得,下载包当中的plugins和features复制到eclipse当中重启
org.eclipse.equinox.ds_1.0.0.v20080427-0830.jar是运行时用到的bundle
org.eclipse.equinox.ds用到了org.eclipse.equinox.util_1.0.0.v20080414.jar
都要在config.ini当中添加并启动

3.一切看似启动正常了,log当中还是有以下异常
java.lang.IllegalStateException: Unable to acquire application service. Ensure that the org.eclipse.core.runtime bundle is resolved and started (see config.ini).
还得启动 org.eclipse.osgi.util_3.1.300.v20080303.jar这个bundle

4.如果http://localhost/demo/page/login.htm 这个页面不能访问可能org.eclipse.equinox.http_1.0.200.v20080421-2006.jar没有启动,如何htm能访问了http://localhost/demo/login 不能访问 可能org.eclipse.equinox.http.servlet_1.0.100.v20080427-0830.jar没有启动

总结一下用户登录验证模块要启动的bundle
id State       Bundle
0 ACTIVE      org.eclipse.osgi_3.4.2.R34x_v20080826-1230
1 ACTIVE      ConfigFileValidatorBundle_1.0.0
2 ACTIVE      DBValidatorBundle_1.0.0
4 ACTIVE      UserValidatorBundle_1.0.0
5 ACTIVE      LDAPValidatorBundle_1.0.0
9 ACTIVE      UserValidatorWebBundle_1.0.0
10 ACTIVE      org.eclipse.equinox.util_1.0.0.v20080414
11 ACTIVE      org.eclipse.equinox.ds_1.0.0.v20080427-0830
12 ACTIVE      javax.servlet_2.4.0.v200806031604
13 ACTIVE      org.eclipse.osgi.services_3.1.200.v20071203
14 ACTIVE      org.eclipse.equinox.http.servlet_1.0.100.v20080427-0830
15 ACTIVE      org.eclipse.equinox.http_1.0.200.v20080421-2006
17 ACTIVE      org.eclipse.osgi.util_3.1.300.v20080303

 

最后更新:2009-05-07 02:30:01
分类:java  |  (共有1条评论)  
2009-05-05 05:17:39 显示全文

OSGI 最初印象
前几天被问到osgi是什么,虽然名字很熟,还真没有具体了解过它,于是开始google
OSGi——Open Service Gateway Initiative 字面上的意思是一个公共的服务平台。

OSGI 框架是一个微核结构的容器,所有的模块都需要运行在容器范围内,在 OSGI中所有模块的部署都必须以 Bundle的方式来进行部署,类似一个Bundle一个jar。
每个Bundle采用的是独立的classloader机制,就是一个Bundle对应一个Classloader,因为不同命名空间的两个类是不可见的,这也就意味着不能采用传统的添加工程引用的方式来实现Bundle间的协作了,Bundle间相互协作意味着不同classloader之间对象需要相互调用,在不同classloader当中只要得到类所对应的Class对象的reference,是可以访问另一命名空间的类的,于是乎被调用的bundle只要提供一个接口,在主调用bundle当中引用接口就可以实现bundle的相互调用。 这就保证了每个模块一个 Bundle 的开发方式并不会很复杂.实现了物理上的模块隔离。

它带来的是设计思想以及开发方式的改变,模块的组织方式决定了系统将如何进行开发以及如何进行部署,而模块的复用和扩展则是减少重复造轮子的过程在设计层面上主要是模块化设计、面向服务的组件模型设计以及动态性的设计三个方面,本质是将Java面向对象的开发转向面向组件和服务的开发。

 

最后更新:2009-05-05 05:17:39
分类:java  |  (共有2条评论)  
2009-03-22 09:47:07 显示全文

java虚拟机当中保存着运行java程序时使用的所有对象,所有的对像都有明确的创建方法,但是没有明确的代码来释放他,垃圾收集器就是来自动释放那些不再被程序使用的对象。虚拟机规范当中虽然没有要求实现任何特定的实现技术,但是在发明可以无限使用的内存之前,大部分虚拟机都附带了一些垃圾收集器。垃圾收集器除了释放不再被引用的对象以外,还要处理堆碎块,这个碎片类是与操作系统当中的磁盘碎片。

最后更新:2009-03-22 09:47:07
分类:java  |  (共有0条评论)  
2008-12-29 01:19:54 显示全文

一个不错的Linux学习笔记

包括目录结构说明和常用命令说明

最后更新:2008-12-29 01:19:54
分类:精彩文章  |  (共有1条评论)  
2008-09-14 09:30:46 显示全文

很长时间没有更新了,很想来写点什么,可有时无从下手,不知道说点啥,写点java方面的吧,很长时间没有研究新技术了,方向把握不准,怕误人子弟。
说说自己吧,好像要说的事情太多,又是没有头绪,最近感觉自己失去了生活的目标,不知道是为了啥,做一天和尚撞一天钟,得过且过。实在是惭愧。
学习吧,没有动力了,静不下心来,刚想敲几行代码,又跑到网上溜达去了,反正是左一下右一下没有重点。生活应该有激情不是吗。
最近玩上了网游,堕落了啊,以前声称自己对网游从不感冒的我,也沦落到这个地步,世界变化真快啊,今天的想法总是能够战胜昨天的想法,不可思议。
上个月还结婚了,算是完成人生当中的一件大事,应该为自己庆祝一下,也算是没有让父母等的时间太长,尽了一份孝心。同时也算是给认识了多年的女友一个交代,都住在一起很长时间了,没有一个说法是不行的,婚礼嘛,就是为了告诉大家我结婚了,同时希望能够得到大家的承认和祝福,哎!一切还算顺利,难道我是被婚姻冲昏了头脑?
再往前还记得自己在下决心减肥,现在看来好像没有效果,我的毅力哪去了,缺少一个能拿皮鞭抽我的人啊,呵呵。
祝愿自己能够找回充满激情的生活。

最后更新:2008-09-14 09:30:46
分类:精彩文章  |  (共有2条评论)  
2008-06-06 06:58:41 显示全文

这是一个鲁中南地区非常流行的益智棋类对战游戏。
在网上找了n久也没有人发现有人写出来过,估计是这种游戏流行面比较窄,很多人都不了解。所以决心把它写出来,就当作弘扬民族文化了。
这里的游戏规则不是我自己创立出来的,只凭着当年玩的时候留下的记忆,写出来的。尤其是在我上初中的时候,风靡的不得了,因为道具准备简单,就地捡一些石子和木棍,然后在地上画个棋盘就可以玩了。咱当年也是打遍全班无敌手(没吹牛。。。)
还是先介绍一下怎么玩吧
本程序用java开发socket通信,需要安装jdk1.4+ java web start的运行环境,如果没有安装jdk请从http://java.sun.com/javase/downloads/index.jsp 下载。
游戏下载地址:http://www.flyox.com/fivetiger/fivetiger.jnlp
启动游戏后会出现以下画面。

五虎游戏画面
这是一个两人对战游戏,一共五行五列,在交叉点上下棋,双方轮流走棋,一次只能下一个棋子或者移动一个棋子,目标是努力组成图形吃掉对方棋子,同时阻止对方形成图形。吃光对方旗子者为胜利方。
第一步 建立游戏
点击右上角的【创建游戏】按钮,建立游戏,然后等待另一方加入游戏。
第二步。加入游戏
点击加入游戏下拉框,里面会显示已建立游戏者的ip,选中之后建立连接,就可以开始游戏了。
第三步 开始游戏
在右侧会显示游戏状态和当前走棋者。
游戏共分两个阶段:
    第一阶段:下棋,在十字交叉点上安放自己的棋子。目标是努力形成图形(图形如下所示)并阻止对方形成图形。形成图形者可以压掉对方1~3个棋子。
    第二阶段:走棋,在下棋阶段所有的棋子安放满了之后就可以开始走棋了,如果轮到走棋者无棋可走的话,双方可以相互拔掉对方一个棋子(已组成图形的不可以拔),走棋过程当中如果形成了图形,也可以拔掉对方1~3个棋子。
第四步:一方棋子被拔光之后为失败。一局结束之后自动开始下一局。


图形说明:0代表其他(包括对方棋子,空白,被压棋子)1代表自己的棋子,只要有形成以下图形的就可以拔掉对方1~3个棋子(从四个方向看棋子构成的图形)

图形:3斜,可以拔掉对方1颗棋子,共4种
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 0
0 0 0 0 0

4斜 可以拔掉对方2颗棋子,共4种
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
0 0 0 0 0

通天棍 可以拔掉对方3颗棋子,共2种
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0

1五虎 可以拔掉对方1颗棋子,共4种
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

2五虎 可以拔掉对方2颗棋子,共4种
0 0 0 0 0
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

中五虎 可以拔掉对方3颗棋子,共2种
0 0 0 0 0
0 0 0 0 0
1 1 1 1 1
0 0 0 0 0
0 0 0 0 0

方 可以拔掉对方1颗棋子,共16种
0 0 0 1 1
0 0 0 1 1
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0

很久很久以前。有这样的一个场景:
一个白胡子老头,和一个活蹦乱跳的小孩,来到一棵大树下,两个人就地画出了一个棋盘,五行五列,然后捡了一些石子和小木棍当作棋子,下起了棋来,
这个棋就是《五虎》,后来周围聚了一些看棋的人,然后越聚越多,然后就有人学着也玩起了这个棋,不一会的功夫整个树下就聚满了人群。
大家一盘一盘的较量起来,周围还不时有诸葛先生指点江山,不亦乐乎。

就这简单的25个棋子,却蕴含着无穷的智慧与乐趣!对启迪思维、开发智力、锻炼拼搏进取精神有很大的帮助。
大家一起来玩吧。希望你是第一个爬到网上,下起了《五虎》然后传播给大家的人。
欢迎交流,联系方式:s u n w e i 2 5 0 @ g m a i l . c o m

最后更新:2008-06-06 06:58:41
分类:java  |  (共有6条评论)  
2008-05-16 01:45:52 显示全文

  生死不离,你的梦落在哪里

  想着生活继续

  天空失去美丽,你却等待明天站起

  无论你在哪里,我都要找到你

  血脉能创造奇迹

  你的呼喊就刻在我的血液里

  生死不离,我数秒等你消息

  相信生命不息

  我看不到你,你却牵挂在我心里

  无论你在哪里,我都要找到你

  血脉能创造奇迹

  搭起双手筑成你回家的路基

  生死不离,全世界都被沉寂

  痛苦也不哭泣

  爱是你的传奇,彩虹在风雨后升起

  无论你在哪里,我都要找到你

  血脉能创造奇迹

  你一丝希望是我全部的动力



由奥运会文化活动处处长王平久连夜创作

最后更新:2008-05-16 01:45:52
分类:精彩文章  |  (共有1条评论)  
2008-04-13 11:36:44 显示全文

经过半个多月的努力,我的八国军旗终于有了一个样子了,先献上图片给大家看看。

八国军旗-桌面布局

初步打算是这样的:上边一对,下边一对,每个队伍轮流攻击对反,杀光对方,或者抗掉对方所有的旗为胜利方。
走棋的规则也是照抄四国军棋。
目前基本功能已完成一半。有登录,进入房间,选择棋桌坐下,调整布局和棋子之间相互吃子等。
将来需要做的功能有,做一个广播寻找主机的方法,目前是直接指定了服务器ip,房间数据的实施刷新,目前是选定座位坐下之后,不再更新房间数据。
另一个重要的地方就是走棋的功能需要完善,这个功能完成了就是判断输赢啦。可能写着写着还会发向有更多的功能要写。
这段时间有一个重大修改就是:
一开始打算把数据通信功能使用nio实现,这一部分基本完成的时候发现了MINA(异步连接框架)这个好东西,有点相识恨晚的感觉。于是决定使用mina重新写我的数据通信部分,做这个决定确实很痛苦,因为好不容易写好的东西推到重写,不过人家MINA包装的NIO确实好,咱也用不着再去造轮子,先拿来用上再说。

通过这一段时间的写代码最大的感受就是:增加了学习的动力,享受写代码带来的乐趣。

最后更新:2008-04-13 11:36:44
分类:java  |  (共有1条评论)  
分页:  1  2  3  4  5  6  7  下一页