抽空帮一个同事 解决了一个问题,感觉有必要记一下,这属于很让人分特的问题,如果没有反应过来可能按着一条错误的路跑到明年自己还都不知道。
事情是这样的……
公司的OA应用在tomcat上表现一切正常,但客户需要移植到他们用Resin搭建的应用服务器上,所以我的同事想先测试一下(对Java的WORA还是有些怀疑,是吧?:P),果不其然(果然还是怀疑的…)应用出错了,但不是程序的问题,只是一个日历和时间的控件怎么也没办法显示,公司里可没JS牛人,我就勉强被叫过去看看。
由于以前没有接触过这个产品,就让他演示给我看。其实显示日历和时间都是靠showModalDialog()这个破方法显示的,里面的内容是靠一个jsp显示,于是继续看那个负责显示内容的jsp。打开这个jsp,很奇怪,IE提示有错误,而同样的部署在tomcat上的应用的同一个jsp打开后则不会出现这个错误。继续看代码…
代码里有一段通过Style声明导入一个.htc的控件(Style来导入控件,分特,挂什么卖什么…),打开这个.htc的代码,恩,比较正常的一大篇javascript,接下来在浏览器里直接打开…
恩?奇怪,访问Resin服务器时那段js是显示出来的,而访问Tomcat服务器时则提示下载,哦…
一切都明了了,用ieHttpHeaders一看,Tomcat对.htc类型的文件会返回Content-Type: text/x-component的头部,而Resin则像哑了一样,啥也没返回,而我记得IE对没有Content-Type的文件的处理是按照text/html来处理的,所以就…
解决方法:给Resin的什么什么.xml文件里加上这个MIME类型的声明就一切OK了。根本和程序不搭靠。
IE的这种行为我记得几年前被一个ID为crazybird的同学找到过,报告为bug,但微软的人根本没鸟这种报告,说是正常行为,其实我也觉得从一个开发人员的角度来看IE的这个行为不是太过分,但从搞安全的人看来则完全是不负责任的,具体原因略过不提,有丁点想像力的人就能想像到。不过IE,为什么就不能处理为text/plain呢?
November 30, 2005
小心你的头!哦不,是HTTP头…
November 28, 2005
XUL终于被人看到了…
据说Yahoo!在招会XUL的人,赫赫,看来做web应用的人也终于算是看到UI的重要性了,不像以前那样用若干个2D强人把页面搞得巨酷,而是开始重视起UI与用户的交互了,好现象,不是吗?好在一直以来对HTML、js和XUL都比较重视,要是有条件试验XAML也早就去看了。UI matters,尤其对于web应用,大家原先都在同一条起跑线上,静态的交互,漫长的form提交,现在出来AJAX一下就把差距拉大了,要是不跟进,难保以后会被人摔开:用户都习惯了灵活又漂亮的UI,谁还鸟你的静态页,加上图片、flash也不行(除非页上的Flash已经搞得比较RIA了)。以后又是XUL、XAML了,你的HTML得做成什么样才能到这种表现能力?
November 23, 2005
时间紧,任务重~
面对着对灵活性要求比较高的广告管理,准备通过script.aculo.us的drag-n-drop功能实现,恩,管理页面的功能强大了,后台的逻辑也简单些,省得处理繁杂的参数们。
November 22, 2005
读书计划:Java Performance Tuning
刚从公司的小图书馆借来,又是我最喜欢的性能话题,虽然是影印版的,争取尽量短的时间内完成吧。536 pages。
November 21, 2005
新的刀山火海
从今天就正式开始了。一个月做一个人才网站怎么都让我觉得不太现实,好在可以建立在公司自己开发的CMS基础之上。你说CMS和人才网站不搭调?我也这么认为,所以我才提议用XML+XSLT作为中间层,这部分可以记录用户对各个栏目的操作、配置,而底层一律通过XSLT转换到html片断,最后还是当作一篇普通的文章保存在CMS里——有点儿像大型网站的静态页面转换过程吧?虽然我很反感发布到静态页面:) 不过如果从头开发,一个月您认为可能么?在一个team只有不到5个开发人员和一个美工的条件下:S
还有就是对Acegi Security System for Spring框架的一些扩充,以解决用户提出的一些需求。
嗯,只有这两点能让我在这种重复性极高的项目里找到一些乐趣……
November 18, 2005
October 23, 2005
Hello world!
Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!
October 21, 2005
OpenOffice.org 2.0 Released
不过貌似中文本地化版还没发布,所以用惯了简体中文版的朋友们还是不着急升级的好。这阵子忙完公司项目以后看看有没有机会申请接手OpenOffice.org的中文页面,现在的页面上满目“正体”字,看着比较别扭。
October 17, 2005
使用Spring来管理Struts Actions
Get a Better Handle on Struts Actions, with Spring. by George Franciscus (george.franciscus@nexcel.ca)
早就想这么干了:-) 随着Spring在项目里占的比重越来越大,看到散落在各处的孤零零的Struts Action早就觉得有股味道了,而且由于没有IoC控制它们,代码看起来也不是很舒服。这篇dW的文章写得很细致,技术方面倒是没什么首创性,只是抛砖引玉罢了,因为都是Spring已经提供好了的东西。
总而言之有三种方法:
- 用Spring的
ActionSupport
类集成Struts; - 用Spring的
DelegatingRequestProcessor
作为Struts的RequestProcessor;
- 用Spring管理Struts
Action
。
解决方法虽然简单,但总比不做要好。
October 14, 2005
推荐OpenOffice.org 2
.indent { margin-left:20px;}
.indent1 { margin-left: 10px;}
.indent2 { margin-left: 20px;}
p { text-indent: 2em;}
不知道有多少人还在孜孜不倦地用着盗版的Microsoft Office,我曾经也是里面的一员,对此我感到十分赧颜,身为一位靠知识吃饭的开发人员,尽管水平不怎么样,也同样希望别人可以尊重自己的知识自己的劳动,而却一直以来使用了太多的盗版软件,肆意践踏自己一直奢望得到的尊重。
这样的日子应该过去了,一直以来实际上就有很多使用盗版软件以外的选择,我的朋友cathayan(如果我可以称他为朋友的话)是这方面的一个很好的榜样,他用Linux,用vi,Mozilla Firefox,多年下来和这些常人眼中不太傻瓜化的软件也相安无事。开源/自由软件并不是怪物,也并非只有专家才能用得了,只是我们的习惯让我们对它们敬而远之,而习惯也许是以后最能说服我们为之掏钱的东西——正版的Windows外加一份正版的Office或仅仅是其若干组件,你计算过要多少钱么?
言归正传。实际上OpenOffice叫做OpenOffice.org,很怪的名字,拿个域名做产品名很多人总拿它和微软的Microsoft Office(现在号称Microsoft Office System了…)相比,所以也就简称为OpenOffice了。OpenOffice.org构建在Sun于2000年10月13日捐赠的其StarOffice的代码基础之上,至今该项目已经运行了5年了。Sun目前还是OpenOffice.org的项目主导和主要的赞助商,但OpenOffice.org现在拥有着来自Novell,Red Hat,Debian,Intel,以及很多其他大大小小公司的贡献,再加上重要的来自独立开发人员、非政府机构和政府机关的源源不断的贡献,使得OpenOffice.org不仅仅是一个免费的生产套件,还是最棒最高级的生产套件,和最伟大的社区力量。
OpenOffice.org 2现在已经到RC 2了(Update:14日RC 3也发布了。时差…),与1.x相比无论是对Microsoft Office专有文件格式的兼容支持、用户界面及运行速度的改进、新的诸如Base这样的组件等等,都极为可圈可点。虽然Microsoft Office现在自成系统(System…),加之与Exchange、MSN Messenger和其他MSN服务、Microsoft SharePoint Portal Server的集成,使得扳倒Microsoft Office日益成为艰难的事情,不过千里之行始于足下,面对办公套件中最常见的文字处理、电子表格、幻灯演示这样的功能,只要做得得当,加之又是免费、开源的产品,OpenOffice.org想扩大用户群、占领办公套件市场并非不可能,而且一些调查显示很多Microsoft Office的用户对于微软频频向其Office中增加的功能并非趋之若鹜,而且存在着大量使用着Office 97、2000并不打算购买升级版本的用户,这些都为OpenOffice.org的成长提供了条件。偷闲半日,翻译了OpenOffice.org的“About”页面,权当为自己喜欢的软件出一份力。翻译过程比较仓促,而且不知为何访问OpenOffice.org网站的速度很慢,所以很多页面也不太方便打开验证一下内容 //bow
项目
历史背景
StarDivision,StarOffice套件的原开发商,于20世纪80年代中期在德国成立,由Sun在1999年的夏天收购,并在2000年6月发布了StarOffice 5.2。当时StarOffice的未来版本,从6.0开始,已经是构建在OpenOffice.org的代码、API、文件格式、参考实现等之上了。 Sun继续赞助OpenOffice.org项目,并且是项目代码的主要贡献者。项目开发的网站架构由CollabNet运行,并帮助管理该项目。
OpenOffice.org的源代码包含了Sun一直以来为未来的StarOffice(TM)套件所开发的所有技术。代码由C++编写,并带来了语言无关和脚本功能,以及Java(TM) API。在代码中所包含的技术引进了下一代架构,使得整个套件可作为单独的应用存在,或以组件形式嵌入到其他应用中。其他数量巨大的特性也被引入进来,包括基于XML的文件格式和其他资源。
有一份FAQ详细陈述了OpenOffice.org和StarOffice的不同。
许可证
OpenOffice.org使用LGPL许可证。为了保证文档和网站内容的许可,使用了PDL(Public Documentation License)许可证。OpenOffice.org的许可证页面介绍了有关许可证和对相关应用程序的方针。同样地,OpenOffice.org有若干FAQ处理许可问题。
三个主分类
“OpenOffice.org”整体项目包含很多公共项目。整个项目包含三个主要分类:
每个分类又进一步维护着很多项目及子项目。
已认可项目包含绝大部分的技术性项目和一些非技术性项目。分类内的项目领导者在该分类中有投票权。该分类中也包括了本地化和孵化器分类中的项目领导者们,这就保证了整个社区所关心的事情可以有效地得到反映。
本地化(也称为“本地语言联盟”)维护着所有的本地化项目:由非英语地区的社区成员为OpenOffice.org的用户提供信息,资源和协助。
孵化器总体上是社区赞助的项目组合。该分类也维护一些试验性的小项目。6个月过后,这里维护的项目有机会申请移动到已认可项目。
OpenOffice.org的每一个项目组都是一个专注的、协作的小组,由一些组员和一位团队领导者组成,由团队领导者接受有关项目和管理的问题。组员可以参与不止一个项目,某个团队领导者也可以是另一个项目的组员。这样的组织结构有利于鼓励协作和跨范围协作,也颇有成效。请查看OpenOffice.org的项目和领导者页面以获取有关项目和它们的领导者们的信息。
最后,每个项目都有其各自的邮件列表。请查看OpenOffice.org的中央邮件列表页面以了解所有邮件列表的结构。
关于组织结构
“www”项目只提供了一个面向外部的总体“门面”,这也是OpenOffice.org的主要门户。它就是你查看OpenOffice.org的首页时的那些页面,和其他类似”http://www.openoffice.org/abc/xyz.html
“这样的地址的页面。关键在于“.openoffice.org
”前是什么。特定的项目都存在于形似“http://[project].openoffice.org/abc/xyz.html
”的地址,不同于“www”的是项目名称。
管理
OpenOffice.org由选举产生的主体管理,即社区委员会(The Community Council, CC)。社区委员会负责仲裁冲突,提议项目目标,并提供一个论坛以用于宣布涉及到整体项目的议题。
工程掌控委员会(The Engineering Steering Committee, ESC)
工程掌控委员会负责向社区委员会提交有关技术实现方面的建议。工程掌控委员会由社区委员会指定的高级开发人员任命,对改进代码提交过程做进一步掌控。
参与指南
OpenOffice.org使用一套指南来制定社区成员的角色和责任,以及源代码如何维护。请参考OpenOffice.org的参与指南以获取更多信息。
OpenOffice.org是一个开源项目,这意味着,首先,我们提供的是一个过程而不是产品,其次,我们依赖开发者和最终用户的贡献来使这一过程得以维持。您最便利的帮助我们的方法就是以注册方式参与进来。一旦注册便有资格加入某些项目,创建议题,举报bug,提交补丁,或者评论已有的议题。总而言之就是一旦加入,您就成为了贡献者。
想要参与很容易,仅仅需要访问参与页面并遵照指导进行。OpenOffice.org鼓励每个对创造好的软件感兴趣的人。这是一个民主的项目,OpenOffice.org需要创造出最佳的办公套件。
开源项目中最激动人心的事情大多发生在邮件列表上面。您甚至不需要注册为OpenOffice.org的一员就可以订阅OpenOffice.org的邮件列表,并且订阅不需要强加给您任何东西(除了接收有趣的邮件)。如果您对OpenOffice.org好奇,感兴趣,但并没准备好贸然加入,OpenOffice.org建议您订阅。
对于与OpenOffice.org产品有关的疑问,可以使用OpenOffice.org的“用户”邮件列表:users@openoffice.org. 请不要发送与产品相关的邮件给dev@website。
除了“用户”邮件列表以外,OpenOffice.org还有两个一般性的邮简列表:“公告”列表——用于宣布大部分的公告,和“讨论”列表——用于有关项目的一般性讨论,比如项目目标以及开源。
订阅OpenOffice.org的任何一个邮件列表,只需要点击下面的适合您的链接发送邮件,保持邮件主题和正文空白即可:
另外,OpenOffice.org的邮件列表页面列举了所有受欢迎的列表,您也可以从该页订阅一些受欢迎的列表的摘要版本。
OpenOffice.org的“To-Do”页面列举了当前需要完成的一些任务。这些任务从易到难不一而足,OpenOffice.org也恳请所有的成员在着手新项目之前参考一下该页面。
OpenOffice.org欢迎人们的参与以及对OpenOffice.org任何方面的意见。
OpenOffice.org的”核心团队”包括:
社区管理员及领导:负责每日管理,长期培养和计划,以及社区开发过程。
协调及发布经理:负责协调OpenOffice.org和StarOffice的开发过程,并建立稳定的发行进度。
- Stefan Taxhet (Sun,技术协调经理)
- Martin Hollmichel (Sun,发布管理员,“移植”项目领导者,外部项目领导者)
OpenOffice.org欢迎人们在网站上发表评论意见。如果您发现有任何问题,或者存在一些疑问,又或者希望提供有关网站布局及操作等等的建议,请查看OpenOffice.org的“联系我们”页面。
另一方面,如果您对使用OpenOffice.org这一软件存在问题,请发送您的问题到“用户”邮件列表:users@openoffice.org.
想成为社区的发行人员?或者想把你的网站链接到OpenOffice.org?如果是这样,请查看OpenOffice.org的“OpenOffice.org in a Nutshell”页面,上面有你需要链接到OpenOffice.org的所有信息。
产品
OpenOffice.org这一产品是一件跨多系统平台的办公生产套件。它包含了关键的一些桌面应用,比如字处理软件、电子表格软件、演示软件、以及绘图软件,并提供了和其他办公套件类似的用户界面以及特性。OpenOffice.org可以完善而灵活地处理很多文件格式,包括Microsoft Office的专有文件格式。
OpenOffice.org可以稳定地运行在Solaris、Linux(包括PPC平台的Linux)、Windows、Mac OS X(X11)和很多其他操作系统之上,支持45种本地语言,并且可支持的语言还在源源不断地由社区增加进来。OpenOffice.org的Our移植页面列举了OpenOffice.org可以运行的系统平台。
OpenOffice.org使用C++语言编写,并且提供了使用LGPL开源许可证的API以及文档,使得任何有能力的开发者可以从源代码中获益匪浅。同时,由于OpenOffice.org使用的文件格式为XML文件,提供了便利的互操作性,使得日后的开发及采纳更为肯定。
特性
OpenOffice.org的特性页面涵盖了这一办公套件的所有特性。该页面定期更新,因为新特性时有增加。基本的特性自从2001年晚一些的638c build版就已经达到了。
OpenOffice.org经常性地收集来自个人及商业用户使用产品的案例证明。您可以阅读OpenOffice.org的案例证明页面,并可以发送您的案例证明给:stories@openoffice.org。
OpenOffice.org以其质量、创新和可用性取胜,网站上的奖励页面列举了OpenOffice.org最近赢得的奖项。
有用的链接
- 介绍 想知道如何为OpenOffice.org贡献自己的力量?从这里开始。
- 文章及采访 索引了一些有关OpenOffice.org、开源的文章,包含一些有关如何使用网站结构的有用的文章。
- Blogs OpenOffice.org贡献者们的沉思。
- 开发人员 与开发人员有关的一些重要的链接,包含到to-do页面的链接。
- FAQ 有关OpenOffice.org的基本问题的答案。
- CD-ROM CD-ROM项目页面,涵盖有关消费者和发布人员的信息。
- 奖励 包括OpenOffice.org所获得的奖励。
- 媒体资源 有关媒体咨询的页面,包含宣传资料。
- 联系我们 列举了与管理人员联系的电子邮件地址。
- 项目列表 列举了可以加入的活跃项目。正是这些项目组成了OpenOffice.org。
- 许可证 许可证(PDL和LGPL)的文字内容,以及有关许可策略的解释。
- 指南
- 邮件列表 有关一般性及技术性邮件列表的信息。