﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-冰面上的火焰-随笔分类-其他</title><link>http://www.blogjava.net/fireice/category/17694.html</link><description /><language>zh-cn</language><lastBuildDate>Fri, 02 Mar 2007 09:33:01 GMT</lastBuildDate><pubDate>Fri, 02 Mar 2007 09:33:01 GMT</pubDate><ttl>60</ttl><item><title>我的PMP之路（二）</title><link>http://www.blogjava.net/fireice/archive/2006/11/26/83570.html</link><dc:creator>GuanHui</dc:creator><author>GuanHui</author><pubDate>Sun, 26 Nov 2006 03:02:00 GMT</pubDate><guid>http://www.blogjava.net/fireice/archive/2006/11/26/83570.html</guid><wfw:comment>http://www.blogjava.net/fireice/comments/83570.html</wfw:comment><comments>http://www.blogjava.net/fireice/archive/2006/11/26/83570.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fireice/comments/commentRss/83570.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fireice/services/trackbacks/83570.html</trackback:ping><description><![CDATA[
		<p>       又有一次项目经理的培训，这次是信息产业部高级项目经理认证培训，老师讲的很精彩，六天的时间，我觉得过得很快，这一次，我有三个收获，现分列如下：</p>
		<p>
				<br />       1、理清了PMBOK对于项目管理的思路，明白了学习PMBOK不一定就能把项目管理好，但是，完整的项目管理理论配合实践经验，完全可以使项目管理水平得到大幅提升，在巨人的肩膀上，可以走的更快。（好像是看的更远？这句话是谁说的来者？）<br />       2、这次培训相当于PMP的培训，有过这次培训之后，就可以直接报考PMP了，不需要再参加培训了。（可以省5、6千块钱，太有诱惑力了，又赚了公司一笔！不过对于我也能考PMP，我没什么信心，和培训的老师比起来，我的差距太大了）。<br />       3、非常后悔上次培训没有认真学习基础知识，搞得一些基础知识全不知道，白天听完课，晚上还得看书。（这当然不能怪我，只能怪那个老师讲课的水平和《大唐双龙传》比起来差距太大，要怪只能怪那个老师和《大唐双龙传》！）<br />       这次培训结束后，我一直想，考PMP，不考PMP，这是个问题！最后还是决定考，毕竟通过考试，才能强迫自己系统的学习PMBOK，否则，对于我这种懒人来说，系统学习只能是空话。<br />       在提交了考试需要的资料，并交纳了3900元报名费之后，我开始准备考试了（这个钱，能不能想办法让公司交，嗯，这又是个问题！）。先上网，看看别人的经验，我google，项目管理联盟论坛，真是个好地方，我看看，好，果然有几条先人的经验，我照做就行了，这就是踩在巨人的肩膀上……，很抱歉，我又一次引用了不知出处的话（好像和牛顿有点关系，又好像没有？）<br />       我总结了几条，摘录下来，给后人参考（这样说好像我成了先人了，不过后人如果为了走的更快要站在我的肩膀上时，我郑重提醒，我的肩膀窄，踩得时候慢点，别掉下来：-）：<br />       1、老金的《如何准备pmp考试第二版》，这本书一定要有，别的书都可以不看，这本书必须看！当然，PMBOK04版出来之后，老金会不会写《如何准备pmp考试第三版》，不得而知，不过，这本书确实对考试相当有帮助。<br />       2、通读PMBOK，千万不要像我们上学的时候，画什么重点，全书都是重点，要通读！最少精读两遍，粗读n遍。一开始，可能觉得什么都知道，结合模拟题，再读，可能又觉得什么都不知道，这就对了！应该再结合模拟题，再读，就真的知道了。<br />       3、模拟题，这是必不可少的，去找一些题来做，可以更好的帮助你通过考试。<br />       4、保证复习时间，考前一周建议请假，专心复习，考前突击对于通过考试觉对大有帮助！<br />       5、考试的时候，不要着急，时间足够，很可能会觉得时间太漫长了。<br />       我想，只要认真复习，通过考试不是很难，难的是，通过学习，确实领悟到了PMBOK理论的实质，帮助自己提升了项目管理的水平，真正去做项目，而不是"熬"项目，这样，PMP认证才会有真正的价值。<br />       顺便提一下，我于今年6月份通过了PMP认证，160分，不算很高，可这不能怪我，都是《大唐双龙传》，复习期间，我又重新温习了一遍…………<br />      所以说，PMP考试通过的第六条，也是最重要的一条：<br />      一定要看《大唐双龙传》！<br /></p>
		<br />
<img src ="http://www.blogjava.net/fireice/aggbug/83570.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fireice/" target="_blank">GuanHui</a> 2006-11-26 11:02 <a href="http://www.blogjava.net/fireice/archive/2006/11/26/83570.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>我的PMP之路（一）</title><link>http://www.blogjava.net/fireice/archive/2006/11/26/83566.html</link><dc:creator>GuanHui</dc:creator><author>GuanHui</author><pubDate>Sun, 26 Nov 2006 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/fireice/archive/2006/11/26/83566.html</guid><wfw:comment>http://www.blogjava.net/fireice/comments/83566.html</wfw:comment><comments>http://www.blogjava.net/fireice/archive/2006/11/26/83566.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fireice/comments/commentRss/83566.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fireice/services/trackbacks/83566.html</trackback:ping><description><![CDATA[      在担任了项目经理两年，管理了十余个成功或不成功的项目之后，我已经濒临崩溃了。当时，我同时在进行着3个项目的售前工作，和两个项目的开发工作。我感觉，我已经无法控制项目的进度，所有的项目都是"熬"出来的，而不是作出来的。我想起了孟良崮战役时陈毅元帅说，将来有儿子，一定不能让他带兵，这真不是人干的。我觉得我如果有儿子（当然，还比较遥远），我决不让他搞IT，尤其是项目经理，这真不是人干的。客户每天对你从没好脸色，公司领导总觉得你没能力，团队总觉得跟着你没钱途。
<p><br />       我觉得，我应该换个工作，换个环境，也许好些？有没有不干活，挣得还多的工作呢？那就很适合我，当然，这只是个想法。难道想一想也不可以吗？<br />       2003年，我们公司准备申请信息产业部二级资质，要通过这个资质，必须具备一些条件，其中有一条就有公司必须有几名信产部认证的项目经理。于是，我和几位同事被公司安排去培训，去参加项目经理的培训（当然是公司买单）。<br />       我是很不以为然地，项目管理培训能提供什么好办法吗，在很不认真的听了一上午后，我觉得都是纸上谈兵，全是理论，有什么用，有本事你来做做试试。于是在开头几天，我根本没仔细听课，什么关键路径法，什么挣值分析，什么时间、成本、范围三角形，有什么用，这些东西面对刁钻的客户有什么用？全都是骗钱的，反正我们公司交了钱，到时候考试是肯定可以通过的。我每天带着笔记本，上课的时候，把久违了的《大唐双龙传》重新温习了一遍，我觉得寇仲、徐子陵比关键路径有意思多了。<br />      直到培训的最后两天，来了位老师，号称是PMP，当时，我第一次听说这个名词，很惭愧，后来我才知道，前几天的培训老师已经讲过了这个认证是怎么回事，可惜我正在研读寇仲的井中八法，对于PMBOK、PMP这些我觉得无论如何和项目管理都风马牛不相及的名词是根本不在乎的。<br />      这位PMP的老师第一堂课，我就没来，客户有问题了，需要我去看看。当时对我来说，客户和什么从没听过的PMP比起来，孰轻孰重，我是很清楚的。下午来了后，我才发现，这位老师和前两天的很不一样，开始讲一些实际的案例，比前两天的纯理论有点意思。我听了听，觉得好像有个什么PMBOK，是对项目管理的总结，应该是PM BOOK吧，我想，是本什么书呢？真的有用？<br />      这次培训我唯一的收获就是听说了PMP，知到这是目前项目管理领域最权威的认证，通过的话，就可以去外企当项目经理了。不过，我还是觉得意义不大，学学PMBOK（这时我已经知道不是老师拼错了），就能做好项目，绝对蒙人。有时候我想，难道这世界除了骗子是真的，剩下全都是假的啦？<br />       又开始在项目的噩梦里煎熬，真怀念培训的时候看《大唐双龙传》的日子。随着项目规模的扩大，我开始深入的学习用Project2003作计划了，当我用到跟踪甘特图时，我忽然发现，这不就是关键路径吗，这东东是怎么回事来着，PERT分析、里程碑、WBS……我倒，PMBOK在哪儿，我想看看！不过，PMBOK是不会讲这些基本概念的，后来我才知道。<br /></p><img src ="http://www.blogjava.net/fireice/aggbug/83566.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fireice/" target="_blank">GuanHui</a> 2006-11-26 10:44 <a href="http://www.blogjava.net/fireice/archive/2006/11/26/83566.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何有效的结束项目----对某税务MIS系统项目的经验总结</title><link>http://www.blogjava.net/fireice/archive/2006/11/24/83340.html</link><dc:creator>GuanHui</dc:creator><author>GuanHui</author><pubDate>Fri, 24 Nov 2006 10:04:00 GMT</pubDate><guid>http://www.blogjava.net/fireice/archive/2006/11/24/83340.html</guid><wfw:comment>http://www.blogjava.net/fireice/comments/83340.html</wfw:comment><comments>http://www.blogjava.net/fireice/archive/2006/11/24/83340.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fireice/comments/commentRss/83340.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fireice/services/trackbacks/83340.html</trackback:ping><description><![CDATA[      在《人月神话》开始的时候，作者Frederick P. Brooks Jr.写道：史前史中，没有别的场景比巨兽们在焦油坑中垂死挣扎的场面更令人震撼。上帝见证着恐龙、猛犸象、剑齿虎在焦油中挣扎。他们挣扎的越猛烈，焦油纠缠的就越紧，没有任何猛兽足够强壮或具有足够的技巧，能够挣脱束缚，他们最后都沉到了坑底。
<p><br />       Frederick P. Brooks Jr.写下上面的文字，用以比喻我们的软件项目，一旦开始，就类似于各种动物在焦油坑中的挣扎。项目开始时的兴奋、激动迅速转变为对项目结束遥遥无期的诅咒和绝望。<br />       对于目前国内的许多软件项目而言，这似乎成为了定律，无论你做怎样的挣扎，项目就是无法结束，只能靠和用户比拼耐性，预期6个月的项目，做18个月是常有的事。我也经历了无数的梦魇般的项目，对于如何有效的结束一个项目，在学习了PMBOK之后，我想结合最近刚刚完成的一个税收MIS项目，谈谈自己的看法。<br />       在PMBOK中，对于项目的阶段，划分为以下五个部分：<br /> </p><p align="center"><img height="241" alt="1.JPG" src="http://www.blogjava.net/images/blogjava_net/fireice/1.JPG" width="445" border="0" /></p><p><br />       我将基本按照这五部分，描述在这个项目中，是如何将项目结束的。<br />      1、启动<br />       该项目的客户属于我们公司长期合作的客户，客户与销售经理的关系非常密切，客户需要开发该软件时，直接找到了我们公司，我作为技术负责人和销售经理一起和客户交流了该软件的情况。在第一次接触中，我感到客户对于自己将要开发的软件的需要还不是十分清楚，但是客户方的项目经理，也就是该税务局的信息中心主任对于软件开发却有着比较丰富的经验，曾经参与过金税工程等大型软件的开发。这使我感到这样的客户比较容易交流。实际情况也确实如此，在与客户交流了几次之后，该项目基本确定，我被公司任命该该项目的项目经理，负责该项目的开发。<br />       在这个过程中，我想作为项目经理，有一个思想必须明确，那就是项目管理的目标就是实现项目的目标，结束项目。这个理念应该贯穿项目管理的始终，所以，在最初和用户交流时，我们就要考虑该项目如何才能结束，它需要达到什么样的目标用户才能够认可，该项目的大体成本是多少，公司对于项目开发周期有没有限制，该项目存在的风险作为项目团队能够承受等。<br />       具体到这个项目中，一开始，我就发现该项目最大的风险在与用户觉得这个项目很简单，同时对于需求却还是比较模糊，当然这也是大多数项目的通病，我承认这个项目与金税工程比起来确实非常简单（比金税工程复杂的项目也不多:），但是如果用户抱着这样的心态，必然会出现项目开发时狂赶工期，后期Bug满天飞，需求改来改去，用户诸多抱怨，公司一面奖励销售，一面拿研发人员开刀的情况。因此，我想怎样找个合适的机会将项目开发的难度以及项目管理的理念与用户沟通。<br />       正在我苦恼的时候，用户提出他们信息中心的技术人员希望进行一次培训，以掌握该项目中的Java等技术。我知道，机会来了，在十天的技术课程的安排上，我专门抽出了一天的时间讲解项目管理，课程安排发给用户后，用户发现了我的小秘密:，专门打来电话问我用一天时间讲解项目管理是否有必要，抓住这个机会，我先给信息中心主任讲了讲项目管理的重要性，以及这个软件的难度、风险、周期等，让用户同意了该要求。在项目开始的时候，获得客户方项目经理的认可是非常必要的，如果你的理念和做法在一开始让客户方的项目经理感到很难认可，我想，项目做起来的难度会非常大。<br />       接下来就是合同的签订和为期十天的培训，在培训中，我将PMBOK的项目管理理念贯穿到整个培训中，尤其是最后的项目管理的讲解，基本上达到了预期的效果，让客户认识到软件的开发绝对不是程序的编写，它涉及到方方面面，一个成功的项目没有客户的配合和参与是很难成功的。对于项目的结束，我也与信息中心主任作了多次沟通，双方基本互相了解了对方的需求和想法。这对于后来项目的顺利进行打下了良好的基础。<br />       通过该项目的启动，我发现，在启动时如果有条件，对客户进行一次培训非常有利于项目的顺利进行。在培训过程中，可以和客户成为朋友，同时把自己项目团队的开发方法和客户作认真的交流，让客户认可开发团队，而且经过培训时间的缓冲，一方面，可以组织其他技术人员对于项目中可能出现的技术难关进行突破，另一方面可以在私下里和客户交流项目需求，这种非正式的需求交流往往比正式的需求交流更容易知道客户发起项目的初衷和客户希望达到的目标。</p><p><br />       2、计划<br />       在计划阶段，一开始应该结合启动阶段对需求的大致了解做出大略的计划，明确项目的结束日期，该计划一方面要提交给用户，另一方面要知会全体项目组成员和公司项目管理部门或公司领导。当然，这里明确的项目结束日期一般情况下都和项目的真正结束日期相去甚远（到目前为止我还没遇到过特殊情况），这不要紧，因为在需求调研结束后，还会再细化项目计划，重新明确项目结束日期。但是不管如何明确，这时的项目结束如期往往受到来自客户、公司等方面的压力，做出的计划总是按照一种理想状况安排的，例如下面就是我在需求结束后作的项目计划：</p><p><img onmousewheel="return bbimg(this)" style="WIDTH: 500px; CURSOR: pointer; ZOOM: 60%" onclick="javascript:window.open(this.src);" src="http://storage.msn.com/x1pIuxx1VYmtQvXZWBI3YtM9pO_eu9wnU7ZDB-enfCy-jfl5IS5SJ_p5qyR8RFyXsefFkE8WQUl-HUbNkrcOfYOzhVf4XSubTwws0AKm8Qo_mXAfceRYLM1XyuxZAZxkDILmUYltH5HXZE" onload="javascript:if(this.width&gt;500)this.style.width=500;" border="0" /><br />       这个项目计划就是在客户方的领导及公司的双重压力下做出的，这个时候，项目经理必须保持清醒的头脑，不管计划上的项目结束时间是多少，心里必须清楚实际完成的大致时间和计划时间的差距，以及这种差距客户机公司是否能够承受。这样，在项目进行过程中，再根据情况对计划逐步调整，逐步向客户和公司汇报调整原因，容易达到客户和公司双方都基本满意的结局。如果差距过大，就要据理力争调整计划，当然，这是比较困难的，但比起最终被客户和公司双重责难，还是比较值得的。<br />上面的计划提交后，我估计最终的结束时间大约要比计划晚5周左右，主要是对于系统修缺，也就是试运行开始后，用户必然会提出许多意见，2周的时间应该完成不了，但是，如果直接在计划上提出7周的时间，用户绝对无法接受，公司也无法接受，项目可能就会陷入停滞，在压力下，我做了2周的修缺，那么，到时候怎么办呢？我通常的做法是，在尽量争取长的修缺时间后，首先保证试运行的基本按时进行，这一点，相信大多数项目团队都能够保证，然后，在开发时采取多版本上线的方式，尽量让用户尽早提出修改意见，争取尽早开始修改，第三，在试运行开始后，用户提出意见时，及时调整项目计划并及时通知用户，让用户明白当他的意见被采纳后，项目结束时间将被推迟到什么时候，给用户一定的压力，可以减少意见量，尽早结束项目。还有，就是在可能的情况下，尽量将实际的估计时间和自己的主管领导进行沟通，获得他的支持，保证无后顾之忧（这一点很重要，不过就看你和领导的关系了:）。<br />       事后证明，我当初的估计基本是对的，项目结束的时间大约比计划时间晚了4周左右，这是由于用户对于软件开发的熟悉和配合，如果碰上比较麻烦的客户，时间大约会再晚一些，但只要事先有充分的估计，就不会手忙脚乱。<br /></p><p>       3、执行<br />       执行过程相对比较顺利，由于和客户保持了良好的关系，得到了客户的大力支持，基本上没有提出刁钻的问题。在这个过程中，一开始的部分，我们是在公司开发，这个过程中，我们开发了部分模块，作为0.1版，到现场给用户进行了安装。<br />这样做，我认为有几个好处，首先，可以让用户感到项目一直在进行，而不至于破坏和用户的信任关系，其次，可以尽早了解现场的实际情况，如果发现问题，及时调整开发方向或者让用户调整现场环境。再次，可以让用户对部分模块尽早提出修改意见，在开发其余模块时，就可以对这部分进行修改，同时把意见贯穿到其他模块中去，减少后面修改的时间。<br />       开发大致结束后，我们进入现场给用户进行安装调试，然后再进行系统修改，这是最艰苦的时期，在这时，用户、公司、项目团队都很容易疲惫、厌烦、愤怒、绝望，并把这一切的罪过都堆到项目经理的头上。所以这时作为项目经理，要保持高度的警惕，必须有完整的项目日志，记录每天的进度；必须保持和用户方项目经理良好的沟通，随时将问题及进度报告客户及公司，让他们明白每天项目团队在做什么，为什么结束时间会一推再推；必须观察项目组成员的情况，防止由于疲惫而出现人员流失的现象；必须随时提醒自己，项目的目标就是结束项目，所作的一切都要围绕结束项目而进行。<br />       在这个过程中，我们项目组基本熬了过来，在我的预想时间内结束了项目，虽然还有很多不令人满意的地方，但毕竟随着项目的结束，大家的压力减轻，可以更好的总结经验。<br /></p><p>       4、控制<br />       在项目进行的过程中，会出现各种各样想象不到的问题，遇到这种突发情况，需要项目经理及时解决。<br />       在这个项目进行的过程中，在开发进入最关键的时刻，项目组的技术骨干突然提出要离职，这是我事先没有思想准备的，如果他真的离职，将会对项目造成极大的麻烦。这个时候，我和他进行了长时间的沟通，了解他离职的原因，如果能够挽留，尽量挽留。<br />       经过交流，发现他提出离职是基于三个原因，一是对公司长期的不满，在一个公司待长了就会对公司产生种种不满，这是人之常情，虽然我提出增加薪水及提升职位，但很难让他对于公司的不满得到根本解决，二是具体生活的压力，在我们这个二级城市的薪水待遇很难解决结婚买房等具体压力，因此他希望能够到北京这样薪水待遇比较好的地方，这也是我们公司目前面临的人员流失的重大挑战，但这个问题短期内恐怕没有更好的方法，三是对于外面世界的向往，在一个二级城市呆的时间长了，对于北京这样紧挨的全国信息中心必然产生向往，希望技术、思想等各方面能够在北京得到提升。<br />       这些问题也是普遍问题，我无法通通为他解决，但为项目考虑，经过劝说，由于平时大家关系非常好，他答应留下来一个月左右的时间，解决好他负责部分的技术问题，同时做好交接工作。这对于项目来说，危机就解除了，因为有一个月的时间，完全可以安排好一切。<br />       针对这样的危机，我想，作为项目经理，一是平时就要注意和团队成员的关系，当发生各种情况时，即便是用人情，也可以帮助自己度过危机；二是对于许多问题，要在平时就了解到团队成员的需要，能帮大家解决的，尽力解决，不要等到发生问题的时候，实在解决不了的，要让大家知道公司的难处和具体环境的限制，不要让大家记恨公司；三是要牢记团队建设的核心是团队成员的个人发展，要给每个成员成长的空间，包括技术、薪水、职位等，否则，一旦团队成员达到发展的顶峰，就会感到没有前途，离职恐怕是必然的选择。<br />       </p><p>       5、收尾<br />       收尾阶段最大的困难是什么？进度！这个时候，面临项目结束，所有人对会对进度非常关注。如何设法说服用户，结束没完没了地更改，顺利地结束项目，是每个项目经理都必须面对的问题。<br />       在这个项目中，由于前期作了大量的工作，在临近收尾时，我们准备了完备的文档，解决了当前存在的Bug，并承诺了以后的服务，双方都比较满意，顺利地签署了初验报告，用户也支付了项目款项，结束了该项目。<br />       所以，我觉得，顺利地收尾并不取决于收尾阶段的工作，而是要把收尾工作贯穿到项目始终，如果前期准备充分，收尾时最大的冲突，进度，就不会成为项目经理最大的问题，相反，如果收尾阶段才开始考虑如何结束项目，那恐怕项目的结束就会遥遥无期。<br /></p><p>       这个项目目前除了日常维护和简单的修改外，已经没有大量的工作了，虽然项目的顺利结束，有很多偶然的因素，例如用户的积极配合（这在其他项目中是少见的，一般是用户的百般刁难），但我想，他仍然具备一些中小项目共同的特点，作为项目经理，我提出来和大家分享的目的是希望我们总结经验，能跳出项目的焦油坑，顺利地结束每一个项目。</p><br /><img src ="http://www.blogjava.net/fireice/aggbug/83340.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fireice/" target="_blank">GuanHui</a> 2006-11-24 18:04 <a href="http://www.blogjava.net/fireice/archive/2006/11/24/83340.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Jasperreport报表在Linux下无法显示</title><link>http://www.blogjava.net/fireice/archive/2006/11/24/83336.html</link><dc:creator>GuanHui</dc:creator><author>GuanHui</author><pubDate>Fri, 24 Nov 2006 10:00:00 GMT</pubDate><guid>http://www.blogjava.net/fireice/archive/2006/11/24/83336.html</guid><wfw:comment>http://www.blogjava.net/fireice/comments/83336.html</wfw:comment><comments>http://www.blogjava.net/fireice/archive/2006/11/24/83336.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/fireice/comments/commentRss/83336.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/fireice/services/trackbacks/83336.html</trackback:ping><description><![CDATA[   近日，我们使用Jasperreport给用户开发了一套报表系统，使用的是PDF格式的报表，系统部署在RedHat Linux9上，在系统测试过程中，没有发现任何问题。系统上线后，用户发现报表无法使用，系统报出以下错误：
<div> </div><div>javax.servlet.ServletException: Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable.</div><div> </div><div>      经过分析得知，该错误是由于Jasperreport程序在转换为PDF时，采用了AWT方式，而AWT会调用操作系统本地窗口资源图，由于我们测试时，系统运行在X window下，所以报表能够正常运行，而上线运行后，由于考虑到系统的稳定性，将系统运行在文本界面下，导致了该问题。</div><div>      找到问题所在，就可以着手解决，解决的方法也很简单，就是让JVM启动时不检测图形界面，由于我们是用的是Tomcat，所以在 /tomcat/bin/catalina.sh 中添加以下的启动参数，即：</div><div>      CATALINA_OPTS='-Djava.awt.headless=true' </div><div> </div><div>      如果使用的不是Tomcat系统，可在启动JVM的地方添加：</div><div>      JAVA_OPTS='-Djava.awt.headless=true'</div><div>      然后重新启动Tomcat，问题解决。</div><div> </div><div>      注意：-Djava.awt.headless=true这个参数是在jdk1.4.1以后才引入的，如果系统使用的JDK是1.4以下的版本，可以参考 <br /><a href="http://java.sun.com/products/java-media/2D/forDevelopers/java2dfaq.html#xvfb"><font color="#618b2c">http://java.sun.com/products/java-media/2D/forDevelopers/java2dfaq.html#xvfb</font></a></div><br /><img src ="http://www.blogjava.net/fireice/aggbug/83336.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/fireice/" target="_blank">GuanHui</a> 2006-11-24 18:00 <a href="http://www.blogjava.net/fireice/archive/2006/11/24/83336.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>