自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

远远的山

我思,故我在。

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 terracota DSO client App端原理分析

对于terracota项目是什么,google一下资料很多。推荐一篇中文文档,http://yale.iteye.com/blog/1541612为了说明本文要关注的方向,并借用一张图先。下面的TC即表示Terracota。上图中,TC Server作为中心JVM堆服务器,为多个分布式部署的相同的App提供JVM堆级的同步服务。那么当采用DSO模式的时候,客户端App只需要配置一下tc

2012-09-27 15:08:18 1211

原创 Java WeakHashMap使用陷阱

某个Factory类中,使用了WeakHashMap保存弱引用的key和value。运行一段时间后,使用Eclipse Memory Analyzer分析JVM抛出的内存 dump文件, 发现WeakHashMap中的entry并没有如我所意料的自动清理,导致大量的内存浪费。 原因在于,WeakHashMap的value中,强引用了对应的key。使得key对象永远不能被释放,value对象也不能被

2012-02-23 17:37:05 1157

原创 OSGi代码权限与Java Security机制

在OSGi开发中,我们常用的getBundleContext().getServiceReferences(String, String)调用,偶尔会出现访问失败,返回null的问题。这是因为OSGi在若干关键的方法中,基于java.security.*类,实现了代码层次的访问权限控制。在org.eclipse.osgi.framework.internal.core.Framework.ge

2012-02-22 16:31:42 2258

原创 shindig3 beta2 gadget渲染及bugs

org.apache.shindig.gadgets.servlet.GadgetRenderingServlet负责了gadget iframe内容的渲染工作,/gadgets/ifr请求会转发到此servlet的doGet()方法中。典型的ifr渲染请求参数如下:container = defaultcountry = ALLlang =  ALLmid

2012-01-06 10:45:50 719

原创 Spring3 Web Security机制

spring3.0.x中,加入了基于角色和url删选的Web Security控制。1. 首先在在web.xml中加入spring security filter: springSecurityFilterChain org.springframework.web.filter.DelegatingFilterProxy

2011-12-30 14:54:58 2006 1

原创 基于WebOSGi的Web组件化开发3——WebOSGi框架的提出

采用OSGi/Equinox实现采用上一节第二中方式,将OSGi容器集成于普通的JEE Server中。在OSGi容器中,实现对Web组件中资源的解析和对外界Http请求的调度,使得Web组件开发和普通JEE卡发没有区别不大

2011-05-26 11:29:00 2150

原创 基于WebOSGi的Web组件化开发2——当前Web组件化的发展

<br /><br />JEE中间件SSH,EJB(初步组件化思想,不是以服务组件为出发点)<br />前端UI组件化dojo,ext,jquery,DHtml(后端仍很混乱)<br />JSF(技术难度高,数据绑定不灵活,页面与UI未分离)<br />Spring DS(OSGI)(不利于与其他中间件集成,难于和eclipse工具集成)<br />Equinox httpService(OSGI)(扩展性强,易于与Eclipse集成),比如:开源OpenCore框架http://code.google.c

2011-05-26 11:26:00 1109

原创 基于WebOSGi的Web组件化开发1——大型JavaEE应用开发的困境

<br /> 2虽然已经有SSH,Ejb, jsf等中间件(初步的组件化思想),但存在以下不足:?没有实现业务和资源的组件化。?没有解决组件和jar包的依赖冲突问题(maven不完善)。?未规范服务组件的服务接口规范,版本依赖规范。?未提供统一的组件扩展规范。2业务逻辑和前端高度耦合(Jsf未完全解决)?页面逻辑和数据处理与UI标签混合。2代码及资源未封装成稳定的可复用形式2大型Web应用功能模块之间耦合紧密,共享包和类冲突严重。后果:项目技术框架不稳定,人员培训成本大,开发周期长,技术难于沉淀和积累。

2011-05-26 11:24:00 1206

原创 OSGi Web启动的classloader机制(基于equinox3.5.2)

1. 使用服务器加载BridgeServlet的Classloader加载FrameworkLauncher类。在equinox官方的BridgeServlet中,org.eclipse.equinox.servletbridge.BridgeServlet.init()方法中,首先调用该Servlet的加载classloader来加载,相关代码片段为:if (frameworkLaunc

2011-04-08 18:57:00 3537

原创 JSP被生成java类编译及Tag解析过程

1. org.apache.jasper.servlet.JspServletWrapper    jsp被编译成servlet,然后运行其service方法。2. org.apache.jasper.compiler.Compiler    解析jsp为node模型,对于每个node,生成相应的java代码。关于node模型体系,请在eclipse查看org.apache.jasper.compiler.Node类的子类体系。3. org.apache.jasper.compiler.Generator 

2011-03-11 11:58:00 2260

原创 Atl ActiveX网页控件的数字签名和安全验证

项目需求中,有需求:从Javascript中生成ActivexObject对象,然后调用其方法和响应其事件。例如: 但是new ActiveXObject("myActivexCtrl.progId"); 总是失败。分析原因为:IE7对未加数字签名的 ActiveX dll文件采用的安全策略,不允许生成对象和调用。经过对IE7的安全策略的修改,调为最安全级别最低,则正常。或者在中级安全时,设置可以下载和运行为签名的ActiveX控件也可以。 我的开发环境为:开发主机Windows XP,

2011-02-17 12:51:00 3663 2

原创 基于OSGI规范Equinox实现的Web组件化松耦合、热插拔架构

<br />在编码的同时,写点东西,休息一下。<br /> <br />在ServletBridge中,对tomat(或者其他服务器的实现)的Servlet,ServletContex, ServletConfigure, ServletRequest, ServletContextFilter, ServletContextListener等标准的JEE规范类,进行封装,生成多个XXXWrapper类,然后将这些封装修改过的类型传入OSGI web容器中。<br /> <br />在OSGI Bundle

2011-01-06 18:00:00 1770

原创 VC下遍历文件夹查找文件

今天看到以前的一些代码,觉得比较常用,放在下面供初学者使用吧。下面的代码都采用VS2002编译测试通过。参数dir是查找的根目录,filename为要查找的文件名(区分大小写), 第三个参数为找到后返回找到的文件路径,传入TCHAR resultPath[MAX_PATH];类型。 /*** 1. 采用Win32 API: FindFirstFile() 和 WIN32_FIND_DATA */HRESULT AcadDocProcessor::FindFile(LPCTSTR dir, LPC

2011-01-04 17:42:00 3262 1

原创 Debug中heapchk.c文件HeapValidate问题

使用MFC的CFileFind类,写了个递归方法,遍历文件夹查找文件。这个方法前面用起来完全正常,没有做过修改,后来出现莫名其名的Debug Heap异常,跟踪到了heapchk.c中的代码,应该是Debug模式下堆内存出错了。在方法前面CFileFind filefind;处,就回出现Debug异常对话框。

2011-01-04 14:18:00 2027

原创 Atl COM Dll工程中调用dll中资源的问题

<br />在做IE BHO插件dll的时候,需要打开一个模式对话框。当我添加了dialog资源,然后MyDialog dlg; dlg.DoModal();时,afxwin1.inl第23、26行出现断言失败:<br />_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetInstanceHandle()<br />    { ASSERT(afxCurrentInstanceHandle != NULL);<br />        return afxCurrentIn

2010-12-30 15:22:00 2331

原创 CString::GetLength()获得字节数的正确方法

<br />      前段时间,做http协议上传文件及断点续传控件时,在客户端采用C++调用CHttpConnection、CHttpFile进行文件上传。移植到Unicode编码时,上传得到的文件总是小于正常文件。最终发现问题出在CString::GetLength()方法上。当采用Unicode编码时,而且http header字符串中出现了中文或其其他多字节字符,该方法仍旧只返回字符数,而不是实际的字节数,这样在http header中的信息会比实际的少,导致http发送的数据小于预期的。<br

2010-12-29 12:17:00 5266 4

原创 C++中使用Socket通信包定义和读取方法

<br />由于TCP/IP协议中,不能携带我们数据的长度,也就是说如果我们发的数据为变长度,接收端收到若干字符后就不知道是不是发送完成了,还是要继续等待,一般来说,VC中的解决方案为发送端和接收端 定义一组共享的 通信协议包,发送按照通用接口将这些结构体包数据发送出去,接收者判断每个包类型,组装成不同的结构体,完成一次网络传输。关键问题有:<br />1. 每个结构体包都需要在开头定义自己的标识符,可以用1 byte整数约定,附加的,可以定义包数据总长度(包括指针指向数据的长度)<br />2. 对于丁长

2010-12-06 10:53:00 2722

原创 嵌入式Linux自学阶段性总结(6)

三 配置linux kernel及安装alsa-driver 经历了上面两个阶段,mscore乐谱程序可以在开发板上运行起来了,已经看到了胜利的曙光。下面面临的问题有几点:mscore在开发板上运行比老黄牛都慢,触摸屏点击后几秒才有反应。可能原因:a. qte4.4.3在编译的时候,没有在qfeature.h中去掉某些不必要的功能,这是为了尽可能的满足mscore的需求。b.

2009-02-25 17:20:00 869

原创 嵌入式Linux自学阶段性总结(5)

二 移植和编译mscore-0.9.3 要成功编译,必须下载编译alsa-lib,因为该工程中调用alsa-lib的头文件,从官方网站上下载。解压后不要编译,否则会安装在主机上,我们最终是要运行在嵌入式linux上的,这里把源码中的头文件包含到mscore的编译路径中,然后交叉编译alsa-lib,得到libasound.so库文件,放到arm-linux-gcc的安装目录的lib中,交叉

2009-02-25 17:19:00 2349

原创 嵌入式Linux自学阶段性总结(4)

至此,qtopia编译完成了。下面要把刚才配置的-image目录挂在到开发板的-prefix目录下,让qpe运行起来,看到实际的手机greenphone界面。在开发板系统的/etc/init.d/rCS脚本中,增加/opt/qtopia/target/runqtopia &,运行启动qtopia的脚本。这个脚本实现要自己创建,并且增加运行权限 chmod +x runqtopia,该脚本内容如下:

2009-02-25 17:17:00 1145

原创 嵌入式Linux自学阶段性总结(3)

d. 现在就可以配置./configure参数,生成我们平台需要的Makefile了.一点需要说明,必须在源代码目录运行解压路径下的configure.如下所示,我的解压路径是和目标路径并列,所以才../qtopia-opensource-4.3.2/configure,不然死活都过不了。我分本编译两个版本的qtopia,一个是用于主机上qvfb(也就是x11上模拟framebuffer的一个程序

2009-02-25 17:16:00 919

原创 嵌入式Linux自学阶段性总结(2)

 修改qtopia源码,配置和交叉编译a.安装arm-linux-gcc-3.4.1网上下载arm-linux-gcc3.4.1,直接解压后,把usr目录覆盖到ubuntu根目录,然后在~/.bashrc添加/usr/local/arm/3.4.1/bin 到 PATH,测试:arm-linux-gcc -v 成功显示版本。 b.编译tslib-1.4触摸屏

2009-02-25 17:12:00 1172

原创 嵌入式Linux自学阶段性总结(1)

嵌入式Linux自学阶段性总结LeoChang QQ:278475286 MSN:zhenzhen365@hotmail.com欢迎从事嵌入式linux图形及设备驱动开发的朋友交流! 最近自学嵌入式linux下qt/eqtopia和设备驱动开发,短短的几个月,遇到了一大堆问题,查找资料然后思考,消耗了大量的脑细胞,不过还是有收获的,最终把路终于走通了就好。最终还

2009-02-25 17:11:00 1575

dom API的js实现

该dom.js文件为非浏览器环境下的js实现了完整的dom API,让我们在服务器端操作dom成为可能。比如利用svg技术,在后端生成图片。

2013-05-10

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除