<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>

<channel>
	<title>JBossWeek</title>
	<atom:link href="http://www.jbossweek.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jbossweek.com</link>
	<description>分享JBoss平台的开发和管理知识</description>
	<pubDate>Tue, 18 Nov 2008 13:35:27 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>jBPM 3.3.0 版本试用手记</title>
		<link>http://www.jbossweek.com/2008/11/jbpm-33-release/</link>
		<comments>http://www.jbossweek.com/2008/11/jbpm-33-release/#comments</comments>
		<pubDate>Sun, 16 Nov 2008 04:18:16 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[jBPM]]></category>

		<category><![CDATA[gwt-console]]></category>

		<category><![CDATA[install]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=107</guid>
		<description><![CDATA[介绍了jBPM 3.3.0版本增加的两个新特性：安装程序和新的管理控制台gwt-console]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">11</span><span style="font-family: 宋体;">月</span><span lang="EN-US">10</span><span style="font-family: 宋体;">日</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">开发团队发布了</span><span lang="EN-US">jBPM 3.3.0</span><span style="font-family: 宋体;">，感兴趣的朋友可以从</span><span lang="EN-US"><a href="http://www.jboss.org/jbossjbpm/jpdl_downloads/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">JBoss jBPM</a></span><span style="font-family: 宋体;">的官方网站下载。该版本虽然在工作流引擎方面没有较大的改进，但是该版本提供了两个非常方便的辅助特性：</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1.<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">安装程序</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">该版本第一次提供了基于开源安装工具包</span><span lang="EN-US">IzPack</span><span style="font-family: 宋体;">图形化的安装程序，用户可以根据安装向导一步一步地将</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">安装到</span><span lang="EN-US">JBoss AS 4.2.x</span><span style="font-family: 宋体;">和</span><span lang="EN-US">JBoss AS 5.0</span><span style="font-family: 宋体;">的服务器上，还可以在安装过程中对数据源进行配置，简化了</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">框架的安装过程。</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="mso-no-proof: yes" lang="EN-US"><a href="http://www.jbossweek.com/wp-content/uploads/2008/11/clip-image002.jpg" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.jbossweek.com/wp-content/uploads/2008/11/clip-image002-thumb.jpg" border="0" alt="clip_image002" width="553" height="407" /></a></span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2.<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">新的控制台</span><span lang="EN-US">gwt-console</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">该版本还包含了新</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">控制台</span><span lang="EN-US">gwt-console</span><span style="font-family: 宋体;">的</span><span lang="EN-US">1.0.0 Beta1</span><span style="font-family: 宋体;">版本，顾名思义</span><span lang="EN-US">gwt-console</span><span style="font-family: 宋体;">基于</span><span lang="EN-US">Google</span><span style="font-family: 宋体;">的</span><span lang="EN-US">Google Web Toolkit</span><span style="font-family: 宋体;">构建，相比</span><span lang="EN-US">jBPM-console</span><span style="font-family: 宋体;">在用户体验上的改进很大。安装</span><span lang="EN-US">jBPM </span><span style="font-family: 宋体;">之后，启动</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">的</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">配置，就可以通过</span><span lang="EN-US">http://localohost:8080/gwt-console</span><span style="font-family: 宋体;">访问新的</span><span lang="EN-US">jBPM</span><span style="font-family: 宋体;">控制台。注意缺省的管理员用户名、密码为：</span><span lang="EN-US">admin/admin</span><span style="font-family: 宋体;">。</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><a href="http://www.jbossweek.com/wp-content/uploads/2008/11/image.png" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.jbossweek.com/wp-content/uploads/2008/11/image-thumb.png" border="0" alt="image" width="767" height="471" /></a></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">对这个特性感兴趣的朋友可以通过</span><span lang="EN-US">JBoss </span><span style="font-family: 宋体;">官方网站访问</span><span lang="EN-US"><a href="http://www.jboss.org/community/docs/DOC-12879" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">gwt-console<span style="font-family: 宋体;"><span lang="EN-US">项目</span></span></a></span><span style="font-family: 宋体;">的详细信息。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/11/jbpm-33-release/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Jopr现学现用系列：JBoss中间件的企业级管理平台Jopr</title>
		<link>http://www.jbossweek.com/2008/11/jopr-practice-introduction/</link>
		<comments>http://www.jbossweek.com/2008/11/jopr-practice-introduction/#comments</comments>
		<pubDate>Tue, 11 Nov 2008 14:27:26 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[Jopr]]></category>

		<category><![CDATA[alert]]></category>

		<category><![CDATA[manage]]></category>

		<category><![CDATA[monitor]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=102</guid>
		<description><![CDATA[介绍JBoss集成化管理平台的开源项目Jopr，包括Jopr的主要功能，名称的来源，以及与JBossON、RHQ之间的关系。]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体">如果您是一名系统管理员，正在承受着如下的煎熬：发疯地寻找配置某个服务的</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体">配置文件；痛苦地敲着冗长的</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">管理命令行；眼花缭乱地在</span><span lang="EN-US">n</span><span style="font-family: 宋体">个终端窗口中切换对</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">服务器实例的监控，那么您应该立即停下来，关注一下</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">社区新开源的项目</span><span lang="EN-US">Jopr</span><span style="font-family: 宋体">。</span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Jopr</span><span style="font-family: 宋体">是一个能够简化开发、测试、部署和监控</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">中间件及其应用的集成化管理平台。通过统一的图形化管理控制台，您可以发现安和监控从网络、操作系统、数据库等基础设施服务，也可以发现和监控</span><span lang="EN-US">Java</span><span style="font-family: 宋体">虚拟机、</span><span lang="EN-US">JBoss Web</span><span style="font-family: 宋体">、连接池等中间件，还可以通过自定义的</span><span lang="EN-US">JMX MBean</span><span style="font-family: 宋体">发现和监控您的业务应用。通过配置的控制和审计，它还可以实现应用部署的标准化。通过管理、监控和调整，</span><span lang="EN-US">Jopr</span><span style="font-family: 宋体">为应用改进可见性、性能和可用性提供了可靠方案。</span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Jopr</span><span style="font-family: 宋体">的读音为</span><span lang="EN-US">Jopper</span><span style="font-family: 宋体">，项目名字的灵感来源于</span><span lang="EN-US">20</span><span style="font-family: 宋体">世纪</span><span lang="EN-US">80</span><span style="font-family: 宋体">年代经典电影&#8220;战争游戏（</span><span lang="EN-US">War Game</span><span style="font-family: 宋体">）&#8221;。电影中有一台名为</span><span lang="EN-US">WOPR</span><span style="font-family: 宋体">人工智能的计算机能够对各种战争情况迅速做出最佳的反应。</span><span lang="EN-US">Jopr</span><span style="font-family: 宋体">则表示能够最好地处理客户的</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">中间件方案。</span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Jopr</span><span style="font-family: 宋体">来源于</span><span lang="EN-US">Redhat</span><span style="font-family: 宋体">的订阅产品</span><span lang="EN-US">JBoss ON</span><span style="font-family: 宋体">（</span><span lang="EN-US">Operation Network</span><span style="font-family: 宋体">），它们之间的区别在于</span><span lang="EN-US">JBoss ON</span><span style="font-family: 宋体">是商业版本，需要付费订阅，但是同时能够得到</span><span lang="EN-US">RedHat</span><span style="font-family: 宋体">专业化技术支持；</span><span lang="EN-US">Jopr</span><span style="font-family: 宋体">是社区版本，可以免费从</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">社区下载，但是没有相应的支持服务。</span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Jopr</span><span style="font-family: 宋体">和</span><span lang="EN-US">JBoss ON</span><span style="font-family: 宋体">都基于开源项目</span><span lang="EN-US">RHQ</span><span style="font-family: 宋体">，</span><span lang="EN-US">Redhat</span><span style="font-family: 宋体">和</span><span lang="EN-US">Hyperic</span><span style="font-family: 宋体">合作开发用于基础设施管理的公用服务项目。</span><span lang="EN-US">RHQ</span><span style="font-family: 宋体">提供的公用服务包括：</span><span lang="EN-US">Inventory</span><span style="font-family: 宋体">（发现）、</span><span lang="EN-US">Monitoring</span><span style="font-family: 宋体">（监控）、</span><span lang="EN-US">Alert</span><span style="font-family: 宋体">（预警）、</span><span lang="EN-US">Configuration</span><span style="font-family: 宋体">（配置）和</span><span lang="EN-US">Operation</span><span style="font-family: 宋体">（操作）等。</span><span lang="EN-US">RHQ</span><span style="font-family: 宋体">同时还提供了一个可插拔的体系结构，能够以插件的形式提供对新的资源进行管理。通过在</span><span lang="EN-US">RHQ</span><span style="font-family: 宋体">的基础上提供的一系列</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">中间件及其应用的管理插件，让</span><span lang="EN-US">Jopr/JBossON</span><span style="font-family: 宋体">成为管理</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体">中间件及其应用的统一管理平台。Jopr提供的插件包括：</span></p>
<p class="MsoNormal" style="line-height: 150%"><a href="http://www.jbossweek.com/wp-content/uploads/2008/11/image1.png" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="494" alt="image" src="http://www.jbossweek.com/wp-content/uploads/2008/11/image-thumb1.png" width="909" border="0" /></a> </p>
<p class="MsoNormal" style="line-height: 150%">
<p><span style="font-size: 10.5pt; font-family: 宋体">如果你想进一步了解</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">Jopr</span><span style="font-size: 10.5pt; font-family: 宋体">，请访问</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">JBoss</span><span style="font-size: 10.5pt; font-family: 宋体">社区的</span><span lang="EN-US" style="font-size: 10.5pt; font-family: "><a href="http://www.jboss.org/jopr/" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">Jopr<span style="font-family: 宋体"><span lang="EN-US">项目</span></span></a></span><span style="font-size: 10.5pt; font-family: 宋体">。如果您想试用，请从</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">JBoss</span><span style="font-size: 10.5pt; font-family: 宋体">社区网站下载</span><span lang="EN-US" style="font-size: 10.5pt; font-family: "><a href="https://www.jboss.org/community/docs/DOC-12805" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">Jopr<span style="font-family: 宋体"><span lang="EN-US">的<span lang="EN-US">最新<span lang="EN-US">发布<span lang="EN-US">版本</span></span></span></span></span></a></span><span style="font-size: 10.5pt; font-family: 宋体">。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/11/jopr-practice-introduction/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBossWeb源代码分析系列：Session定时失效分析</title>
		<link>http://www.jbossweek.com/2008/10/session-timeout-demystify/</link>
		<comments>http://www.jbossweek.com/2008/10/session-timeout-demystify/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 12:47:54 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[JBoss AS]]></category>

		<category><![CDATA[demystify]]></category>

		<category><![CDATA[session]]></category>

		<category><![CDATA[timeout]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=101</guid>
		<description><![CDATA[通过对源代码的深入分析，从Session失效的检查流程、检查间隔和检查算法三个方面揭开了JBossAS中Session失效机制实现的内幕。]]></description>
			<content:encoded><![CDATA[<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">一、<span style="font: 7pt "> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt" lang="EN-US">Session</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; font-family: 宋体;">失效的检查流程</span></strong></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image4.png" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb4.png" border="0" alt="image" width="941" height="560" /></a></p>
<p>JBoss AS在启动时会调用StandardEngine的start方法，在Start方法里会启动一个ContainerBackgroundProcessor的后台线程，该后台线程会定期地调用StandardEngine下的所有StandardContext的backgroundProcess方法。StandardContext的backgroundProcess将Session的失效处理委托给StandardManager的ProcessExpires完成。ProcessExpires方法会取出StandardConetext中的所有StandardSession，逐个调用StandardSession的isValid方法。IsValid方法负责判断Session是否失效，如果失效则调用StandardSession的Expire方法，发送Session失效事件并清除保存在Session中的其它信息，之后再调用StandardManager的Remove方法将该Session从StandardManager保存Session的HashMap中清除，至此整个Session的失效处理过程结束。</p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">二、<span style="font: 7pt "> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt" lang="EN-US">Session</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; font-family: 宋体;">失效的检查间隔</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt" lang="EN-US"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"> </strong></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">检查</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">失效的时间间隔由两个参数确定，一个是后台线程</span><span lang="EN-US">ContainerBackgroundProcessor</span><span style="font-family: 宋体;">的轮询时间间隔，一个是</span><span lang="EN-US">ProcessExpires</span><span style="font-family: 宋体;">方法中检查</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">失效的频率。检查失效的时间间隔</span><span lang="EN-US"> = </span><span style="font-family: 宋体;">轮询的时间间隔</span><span lang="EN-US"> * </span><span style="font-family: 宋体;">检查频率。涉及的关键代码如下：</span></p>
<p class="MsoNormal"><span lang="EN-US">ContainerBase.java</span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span style="font-size: 10pt; color: #7f0055;">protected</span></strong><span style="font-size: 10pt; color: black;"> </span><strong><span style="font-size: 10pt; color: #7f0055;">class</span></strong><span style="font-size: 10pt; color: black;"> ContainerBackgroundProcessor </span><strong><span style="font-size: 10pt; color: #7f0055;">implements</span></strong><span style="font-size: 10pt; color: black;"> Runnable {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left">
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">public</span></strong><span style="font-size: 10pt; color: black;"> </span><strong><span style="font-size: 10pt; color: #7f0055;">void</span></strong><span style="font-size: 10pt; color: black;"> run() {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">while</span></strong><span style="font-size: 10pt; color: black;"> (!threadDone) {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">try</span></strong><span style="font-size: 10pt; color: black;"> {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>Thread.sleep(</span><strong style="mso-bidi-font-weight: normal"><span style="font-size: 10pt; color: red;">backgroundProcessorDelay</span></strong><span style="font-size: 10pt; color: black;"> * 1000L);</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>} catch (InterruptedException e) { </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>;</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>}</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span lang="EN-US">ManagerBase.java</span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span style="font-size: 10pt; color: #7f0055;">public</span></strong><span style="font-size: 10pt; color: black;"> </span><strong><span style="font-size: 10pt; color: #7f0055;">void</span></strong><span style="font-size: 10pt; color: black;"> backgroundProcess() {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>count = (count + 1) % </span><strong style="mso-bidi-font-weight: normal"><span style="font-size: 10pt; color: red;">processExpiresFrequency</span></strong><span style="font-size: 10pt; color: black;">;</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">if</span></strong><span style="font-size: 10pt; color: black;"> (count == 0)</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>processExpires();</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-indent: 19.5pt"><span style="font-size: 10pt; color: black;">} </span></p>
<p class="MsoNormal">
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">其中：</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">backgroundProcessDelay</span><span style="font-family: 宋体;">：在</span><span lang="EN-US">Tomcat</span><span style="font-family: 宋体;">配置文件的</span><span lang="EN-US">Engine</span><span style="font-family: 宋体;">元素中设置，缺省为</span><span lang="EN-US">10</span><span style="font-family: 宋体;">，也就是每隔</span><span lang="EN-US">10</span><span style="font-family: 宋体;">秒钟轮询一次。</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">processExpiresFrequency</span><span style="font-family: 宋体;">：在</span><span lang="EN-US">Tomcat</span><span style="font-family: 宋体;">配置文件的</span><span lang="EN-US">Manager</span><span style="font-family: 宋体;">元素中设置，缺省为</span><span lang="EN-US">6</span><span style="font-family: 宋体;">，也就是后台线程每轮询</span><span lang="EN-US">6</span><span style="font-family: 宋体;">次才进行</span><span lang="EN-US">1</span><span style="font-family: 宋体;">次</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">是否失效的检查。</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">由此可以得出，缺省情况下</span><span lang="EN-US">Tomcat</span><span style="font-family: 宋体;">每分钟进行</span><span lang="EN-US">1</span><span style="font-family: 宋体;">次</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">是否失效的检查。</span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">三、<span style="font: 7pt "> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt" lang="EN-US">Session</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt; font-family: 宋体;">失效的检查算法</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 14pt" lang="EN-US"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"> </strong></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">前面已经提到</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">是否失效的判断在</span><span lang="EN-US">StandardSession</span><span style="font-family: 宋体;">的</span><span lang="EN-US">isValid</span><span style="font-family: 宋体;">方法中进行，其关键代码如下：</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">StandardSession.java</span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span style="font-size: 10pt; color: #7f0055;">if</span></strong><span style="font-size: 10pt; color: black;"> (maxInactiveInterval &gt;= 0) { </span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">long</span></strong><span style="font-size: 10pt; color: black;"> timeNow = System.currentTimeMillis();</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">int</span></strong><span style="font-size: 10pt; color: black;"> timeIdle = (</span><strong><span style="font-size: 10pt; color: #7f0055;">int</span></strong><span style="font-size: 10pt; color: black;">) ((timeNow - thisAccessedTime) / 1000L);</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span></span><strong><span style="font-size: 10pt; color: #7f0055;">if</span></strong><span style="font-size: 10pt; color: black;"> (timeIdle &gt;= maxInactiveInterval) {</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span><span style="mso-spacerun: yes"> </span>expire(</span><strong><span style="font-size: 10pt; color: #7f0055;">true</span></strong><span style="font-size: 10pt; color: black;">);</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span>}</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-size: 10pt; line-height: 150%; color: black;"><span style="mso-spacerun: yes"> </span>} </span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">从上面的代码中可以看出，</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">是否失效的判断条件为：</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">最大的不活动时间</span><span lang="EN-US"> &lt;= </span><span style="font-family: 宋体;">当前时间</span> <span style="font-family: 宋体;">—</span> <span style="font-family: 宋体;">最近的访问时间</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">由此可以得出确定</span><span lang="EN-US">Session</span><span style="font-family: 宋体;">是否失效取决于最大的不活动时间和最近的访问时间。</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1.<span style="font: 7pt "> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体;">最大不活动时间的确定</span><span lang="EN-US"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"> </strong></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">通常在</span><span lang="EN-US">web</span><span style="font-family: 宋体;">应用的</span><span lang="EN-US">web.xml</span><span style="font-family: 宋体;">中的</span><span lang="EN-US">session-config</span><span style="font-family: 宋体;">元素中设置：</span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal;">&lt;</span><span style="font-size: 10pt; color: #3f7f7f;">session-config</span><span style="font-size: 10pt; color: teal;">&gt;</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black;"><span style="mso-spacerun: yes"> </span><span style="mso-tab-count: 1"> </span></span><span style="font-size: 10pt; color: teal;">&lt;</span><span style="font-size: 10pt; color: #3f7f7f;">session-timeout</span><span style="font-size: 10pt; color: teal;">&gt;</span><span style="font-size: 10pt; color: black;">15</span><span style="font-size: 10pt; color: teal;">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f;">session-timeout</span><span style="font-size: 10pt; color: teal;">&gt;</span><span style="font-size: 10pt; font-family: " lang="EN-US"> </span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-size: 10pt; line-height: 150%; color: black;"><span style="mso-spacerun: yes"> </span></span><span style="font-size: 10pt; line-height: 150%; color: teal;">&lt;/</span><span style="font-size: 10pt; line-height: 150%; color: #3f7f7f;">session-config</span><span style="font-size: 10pt; line-height: 150%; color: teal;">&gt; </span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">缺省的最大不活动时间为</span><span lang="EN-US">30</span><span style="font-family: 宋体;">分钟。</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span style="mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2.<span style="font: 7pt "> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体;">最近访问时间的确定</span></strong></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image5.png" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb5.png" border="0" alt="image" width="783" height="430" /></a></p>
<p class="MsoNormal" style="line-height: 150%"><span style="mso-no-proof: yes" lang="EN-US"><br />
</span></p>
<p><span style="font-size: 10.5pt; font-family: 宋体;">由上面的流程图可以看出，</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">Http11Processor</span><span style="font-size: 10.5pt; font-family: 宋体;">在处理每次请求时都会调用</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">SecurityAssociationValve</span><span style="font-size: 10.5pt; font-family: 宋体;">，然后由它调用</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">Request</span><span style="font-size: 10.5pt; font-family: 宋体;">的</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">getSession</span><span style="font-size: 10.5pt; font-family: 宋体;">方法，再调用</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">StandardSession</span><span style="font-size: 10.5pt; font-family: 宋体;">的</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">access</span><span style="font-size: 10.5pt; font-family: 宋体;">方法，</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">access</span><span style="font-size: 10.5pt; font-family: 宋体;">方法负责记录最近的访问时间</span><span style="font-size: 10.5pt; font-family: " lang="EN-US">thisAccessdTime</span><span style="font-size: 10.5pt; font-family: 宋体;">，从而确保能够准确的计算客户端的最大不活动时间。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/10/session-timeout-demystify/feed/</wfw:commentRss>
		</item>
		<item>
		<title>新一代的JBoss管理控制台Embedded Jopr</title>
		<link>http://www.jbossweek.com/2008/10/jboss-managed-console-embedded-jopr/</link>
		<comments>http://www.jbossweek.com/2008/10/jboss-managed-console-embedded-jopr/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 14:34:40 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[JBoss AS]]></category>

		<category><![CDATA[management]]></category>

		<category><![CDATA[monitor]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=96</guid>
		<description><![CDATA[介绍了JBoss AS新的管理控制台应用Embedded Jopr]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">JBoss</span><span style="font-family: 宋体;">的管理控制台</span><span lang="EN-US">Jmx-console</span><span style="font-family: 宋体;">一直被大家诟病，不过</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体;">最近悄无声息地发布了一款新的管理控制台应用—</span>Embedded Jopr<span style="font-family: 宋体;">，新的管理控制台是基于</span><span lang="EN-US">Seam</span><span style="font-family: 宋体;">框架开发的一个</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">应用，无论是界面还是操作都比以前好多了，感兴趣的朋友可以下载体验一下。</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="mso-no-proof: yes" lang="EN-US"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/clip-image002.jpg" ><img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" src="http://www.jbossweek.com/wp-content/uploads/2008/10/clip-image002-thumb.jpg" border="0" alt="clip_image002" width="607" height="316" /></a></span></p>
<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Embeded-jopr</span><span style="font-family: 宋体;">项目信息</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">下载地址：</span><span lang="EN-US"><a href="http://www.jboss.org/community/docs/DOC-12804" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">http://www.jboss.org/community/docs/DOC-12804</a></span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体;">安装指南：</span><span lang="EN-US"><a href="http://www.jboss.org/community/docs/DOC-12801" onclick="javascript:pageTracker._trackPageview('/outbound/article/www.jboss.org');">http://www.jboss.org/community/docs/DOC-12801</a></span></p>
<p class="MsoNormal" style="line-height: 150%">
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/10/jboss-managed-console-embedded-jopr/feed/</wfw:commentRss>
		</item>
		<item>
		<title>采用groovy开发基于JBoss的JSF应用</title>
		<link>http://www.jbossweek.com/2008/10/groovy-based-jsf-dev/</link>
		<comments>http://www.jbossweek.com/2008/10/groovy-based-jsf-dev/#comments</comments>
		<pubDate>Thu, 16 Oct 2008 13:44:44 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[JBoss AS]]></category>

		<category><![CDATA[JBossTools]]></category>

		<category><![CDATA[groovy]]></category>

		<category><![CDATA[jsf]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=93</guid>
		<description><![CDATA[介绍采用groovy开发基于JBoss的JSF应用的配置和详细步骤]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体">开发环境</span></p>
<p class="MsoNormal"><span lang="EN-US">JBoss AS 4.2.3GA + JBossTools 2.1.2 + GroovyEclipsePlugin</span></p>
<p class="MsoListParagraph" style="margin-left: 21.25pt; text-indent: -21.25pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">1.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; line-height: 150%; font-family: 宋体">项目准备</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">1.1.<span> </span></span></span><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">新建一个</span><span lang="EN-US">JSF</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">项目</span></strong></p>
<p class="MsoNormal" style="margin-left: 21.3pt; line-height: 150%"><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">中选择&#8220;</span><span lang="EN-US">File-New-&gt;JSF Project</span><span style="font-family: 宋体">&#8221;，在出现的窗口中输入：</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span lang="EN-US">Project Name</span><span style="font-family: 宋体">：</span><span lang="EN-US">groovydemo</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span lang="EN-US">JSF Enviroment</span><span style="font-family: 宋体">：</span><span lang="EN-US">JSF 1.2</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span lang="EN-US">Template</span><span style="font-family: 宋体">：</span><span lang="EN-US">JSFBlankWithoutLibs</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体">选择&#8220;</span><span lang="EN-US">Finish</span><span style="font-family: 宋体">&#8221;结束创建</span><span lang="EN-US">JSF</span><span style="font-family: 宋体">项目；</span></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">1.2.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">修改</span><span lang="EN-US">web.xml </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoNormal" style="margin-left: 18pt; line-height: 150%"><span style="font-family: 宋体">修改</span><span lang="EN-US">WEB-INF</span><span style="font-family: 宋体">目录下的</span><span lang="EN-US">web.xml</span><span style="font-family: 宋体">，增加如下内容：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">context-param</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">param-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="text-decoration: underline"><span style="font-size: 10pt; color: black">com</span></span><span style="font-size: 10pt; color: black">.sun.faces.developmentMode</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">param-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">param-value</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">true</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">param-value</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">context-param</span><span style="font-size: 10pt; color: teal">&gt; </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: "></span>
</p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">filter</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">filter-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">GroovyFilter</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">filter-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">filter-class</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="text-decoration: underline"><span style="font-size: 10pt; color: black">com</span></span><span style="font-size: 10pt; color: black">.sun.faces.scripting.GroovySupportFilter</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">filter-class</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">filter</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">filter-mapping</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">filter-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">GroovyFilter</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">filter-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">url-pattern</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">/*</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">url-pattern</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">REQUEST</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">FORWARD</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">INCLUDE</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">ERROR</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">dispatcher</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-pagination: widow-orphan; tab-stops: 16.25pt 52.25pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">filter-mapping</span><span style="font-size: 10pt; color: teal">&gt; </span></p>
<p class="MsoListParagraph" style="margin-left: 21.25pt; text-indent: -21.25pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%">JSF</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; line-height: 150%; font-family: 宋体">开发</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.1.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">开发</span><span lang="EN-US">ManagedBean </span></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"></span></strong><span style="font-family: 宋体">在</span><span lang="EN-US">WEB-INF</span><span style="font-family: 宋体">目录下创建</span><span lang="EN-US">groovy</span><span style="font-family: 宋体">和</span><span lang="EN-US">groovy/demo</span><span style="font-family: 宋体">目录，选择</span><span lang="EN-US">groovy/demo</span><span style="font-family: 宋体">目录有键单击，在弹出的上下文菜单中选择&#8220;</span><span lang="EN-US">New-&gt;Other-&gt;Groovy-&gt;Groovy Class</span><span style="font-family: 宋体">&#8221;，选择&#8220;</span><span lang="EN-US">Next</span><span style="font-family: 宋体">&#8221;继续，在出现</span><span lang="EN-US">Groovy Class</span><span style="font-family: 宋体">对话框中将</span><span lang="EN-US">Name</span><span style="font-family: 宋体">设置为</span><span lang="EN-US">GroovyBean</span><span style="font-family: 宋体">，选择&#8220;</span><span lang="EN-US">Finish</span><span style="font-family: 宋体">&#8221;结束创建</span><span lang="EN-US">Groovy Class</span><span style="font-family: 宋体">。为了方便演示这里只创建一个简单的</span><span lang="EN-US">Groovy</span><span style="font-family: 宋体">类，代码如下：</span></p>
<blockquote><p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: #cc0000">/**</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: #cc0000">*</span><span style="font-size: 10pt; color: black"> @author </span><span style="font-size: 10pt; color: #cc0000">jbossweek</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"></span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: #cc0000">*/</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><strong><span style="font-size: 10pt; color: #006699">public</span></strong><span style="font-size: 10pt; color: black"> </span><strong><span style="font-size: 10pt; color: #0099ff">class</span></strong><span style="font-size: 10pt; color: black"> GroovyBean{</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span lang="EN-US" style="font-size: 10pt; font-family: "></span>
</p>
<p class="MsoNormal"><span lang="EN-US" style="mso-font-kerning: 0pt"><span style="mso-tab-count: 1"></span>String message </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><strong><span style="font-size: 10pt; color: #009966">def</span></strong><span style="font-size: 10pt; color: black"> sayHello(){</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><strong><span style="font-size: 10pt; color: #006699">return</span></strong><span style="font-size: 10pt; color: black"> </span><span style="font-size: 10pt; color: #ff00cc">&quot;hello&quot;</span><span style="font-size: 10pt; color: black">;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span>}</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black">}</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
</blockquote>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.2.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">配置</span><span lang="EN-US">ManagedBean </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体">打开</span><span lang="EN-US">WEB-INF/faces-config.xml</span><span style="font-family: 宋体">文件，增加一个名为</span><span lang="EN-US">groovyBean</span><span style="font-family: 宋体">的</span><span lang="EN-US">ManagedBean</span><span style="font-family: 宋体">配置：</span></p>
<p class="MsoNormal" style="text-indent: 18pt; text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<blockquote><p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">groovyBean</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-name</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-class</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">demo.GroovyBean</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-class</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span><span style="mso-tab-count: 2"></span><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-scope</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">request</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean-scope</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
</blockquote>
<p class="MsoNormal" style="text-indent: 18pt; text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">managed-bean</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span>
</p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.3.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">创建测试页面</span><span lang="EN-US"> </span></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US"></span></strong><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">中分别创建一个用于输入的</span><span lang="EN-US">input.jsp</span><span style="font-family: 宋体">页面和用于输入侧</span><span lang="EN-US">output.jsp</span><span style="font-family: 宋体">页面，其中，</span><span lang="EN-US">input.jsp</span><span style="font-family: 宋体">代码如下：</span></p>
<blockquote><p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: #bf5f3f">&lt;%@</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #3f7f7f">taglib</span> <span style="color: #7f007f">uri</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;http://java.sun.com/jsf/html&quot;</span></em> <span style="color: #7f007f">prefix</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;h&quot;</span></em> <span style="color: #bf5f3f">%&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: #bf5f3f">&lt;%@</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #3f7f7f">taglib</span> <span style="color: #7f007f">uri</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;http://java.sun.com/jsf/core&quot;</span></em> <span style="color: #7f007f">prefix</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;f&quot;</span></em> <span style="color: #bf5f3f">%&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">html</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">head</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">title</span><span style="font-size: 10pt; color: teal">&gt;&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">title</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">head</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">body</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">f:view</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">h:form</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">h:inputText</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #7f007f">value</span><span style="color: black">=</span>&quot;#{groovyBean.message}&quot;<span style="color: teal">/&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">h:commandButton</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #7f007f">action</span><span style="color: black">=</span>&quot;#{groovyBean.sayHello}&quot; <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;Groovy Demo&quot;</span></em><span style="color: teal">/&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">h:form</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">f:view</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">body</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">html</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
<p class="MsoListParagraph" style="line-height: 150%"><span lang="EN-US"></span>
</p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">output.jsp</span><span style="font-family: 宋体">代码如下：</span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: #bf5f3f">&lt;%@</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #3f7f7f">taglib</span> <span style="color: #7f007f">uri</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;http://java.sun.com/jsf/html&quot;</span></em> <span style="color: #7f007f">prefix</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;h&quot;</span></em> <span style="color: #bf5f3f">%&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: #bf5f3f">&lt;%@</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #3f7f7f">taglib</span> <span style="color: #7f007f">uri</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;http://java.sun.com/jsf/core&quot;</span></em> <span style="color: #7f007f">prefix</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;f&quot;</span></em> <span style="color: #bf5f3f">%&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">html</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">head</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">title</span><span style="font-size: 10pt; color: teal">&gt;&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">title</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">head</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">body</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">f:view</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">h:outputLabel</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #7f007f">value</span><span style="color: black">=</span><em><span style="color: #2a00ff">&quot;Hello &quot;</span></em><span style="color: teal">&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">h:outputLabel</span><span style="font-size: 10pt; color: teal">&gt;&lt;</span><span style="font-size: 10pt; color: #3f7f7f">h:outputText</span><span lang="EN-US" style="font-size: 10pt; font-family: "> <span style="color: #7f007f">value</span><span style="color: black">=</span>&quot;#{groovyBean.message}&quot;<span style="color: teal">/&gt;</span> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 2"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">f:view</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">body</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black"><span style="mso-tab-count: 1"> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
<p class="MsoNormal" style="text-align: left; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">html</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"> </span></span><span lang="EN-US" style="font-size: 10pt; font-family: "></span></p>
</blockquote>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span>
</p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.4.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">设置页面导航</span><span lang="EN-US"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoNormal" style="margin-left: 21.3pt; line-height: 150%"><span lang="EN-US">Faces-config.xml</span><span style="font-family: 宋体">中的页面导航配置如下：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">navigation-rule</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">from-view-id</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">/input.<span style="text-decoration: underline">jsp</span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">from-view-id</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">navigation-case</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">from-outcome</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">hello</span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">from-outcome</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;</span><span style="font-size: 10pt; color: #3f7f7f">to-view-id</span><span style="font-size: 10pt; color: teal">&gt;</span><span style="font-size: 10pt; color: black">/output.<span style="text-decoration: underline">jsp</span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">to-view-id</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: black"><span style="mso-spacerun: yes"></span></span><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">navigation-case</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoNormal" style="margin-left: 21pt; text-align: left; mso-para-margin-left: 2.0gd; mso-layout-grid-align: none" align="left"><span style="font-size: 10pt; color: teal">&lt;/</span><span style="font-size: 10pt; color: #3f7f7f">navigation-rule</span><span style="font-size: 10pt; color: teal">&gt;</span><span lang="EN-US" style="font-size: 10pt; font-family: "> </span></p>
<p class="MsoListParagraph" style="margin-left: 21.25pt; text-indent: -21.25pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%; mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">3.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-size: 12pt; line-height: 150%; font-family: 宋体">部署与测试</span></strong><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="font-size: 12pt; line-height: 150%"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">3.1.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">部署</span><span lang="EN-US">groovy</span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">包</span><span lang="EN-US"> </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体">将</span><span lang="EN-US">groovy-all-1.5.7.jar</span><span style="font-family: 宋体">拷贝到</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体">配置的</span><span lang="EN-US">lib</span><span style="font-family: 宋体">目录下，例如：如果使用</span><span lang="EN-US">default</span><span style="font-family: 宋体">配置，则拷贝到</span><span lang="EN-US">default/lib</span><span style="font-family: 宋体">目录下</span></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">3.2.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">运行</span><span lang="EN-US">JBoss AS </span></strong></p>
<p><strong style="mso-bidi-font-weight: normal"></strong></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体">在</span><span lang="EN-US">Eclipse</span><span style="font-family: 宋体">中，使用</span><span lang="EN-US">Server</span><span style="font-family: 宋体">视图启动</span><span lang="EN-US">JBoss AS</span></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">3.3.<span> </span></span></span></strong><strong style="mso-bidi-font-weight: normal"><span style="font-family: 宋体">验证</span></strong></p>
<p class="MsoListParagraph" style="margin-left: 1cm; text-indent: -7.05pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level2 lfo1"><strong style="mso-bidi-font-weight: normal"></strong><span style="font-size: 10.5pt; font-family: 宋体">打开浏览器输入</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">http://localhost:8080/groovydemo/input.jsf</span><span style="font-size: 10.5pt; font-family: 宋体">，在出现的页面中输入</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">jbossweek</span><span style="font-size: 10.5pt; font-family: 宋体">，点击&#8220;</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">groovydemo</span><span style="font-size: 10.5pt; font-family: 宋体">&#8221;就会出现&#8220;</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">hello jbossweek</span><span style="font-size: 10.5pt; font-family: 宋体">&#8221;的页面，</span><span lang="EN-US" style="font-size: 10.5pt; font-family: ">OK</span><span style="font-size: 10.5pt; font-family: 宋体">！</span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/10/groovy-based-jsf-dev/feed/</wfw:commentRss>
		</item>
		<item>
		<title>JBoss AS网络集中部署教程</title>
		<link>http://www.jbossweek.com/2008/10/jboss-netboot-in-action/</link>
		<comments>http://www.jbossweek.com/2008/10/jboss-netboot-in-action/#comments</comments>
		<pubDate>Fri, 03 Oct 2008 12:59:44 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[JBoss AS]]></category>

		<category><![CDATA[deploy]]></category>

		<category><![CDATA[netboot]]></category>

		<category><![CDATA[webdav]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=92</guid>
		<description><![CDATA[集中部署模式适合需要部署多个JBoss AS实例，并对配置信息进行集中管理的业务场景。本文详细介绍了JBoss AS的集中部署模式及其安装、配置过程。]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%; mso-outline-level: 1"><span style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">一、</span></span><span style="font-family: 宋体;">集中部署介绍</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体;">集中部署是</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">提供的高级部署特性，在这种部署模式里，</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">的配置信息被集中存储在支持</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">协议的</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">服务器上。</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">应用服务器只需安装简单的启动、关闭工具即可。运行时，</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">所需的服务和应用等资源通过</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">协议从</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">服务器下载，其它与本地部署模式没有区别。因而这种模式非常适合需要采取统一的方式部署多个</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例的开发和生产环境。</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image.png" ><img src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb.png" alt="image" width="552" height="369" /></a></p>
<p class="MsoNormal" style="line-height: 150%"><span style="mso-no-proof: yes" lang="EN-US"><br />
</span></p>
<p class="MsoNormal" style="text-indent: 21pt; line-height: 150%; mso-char-indent-count: 2.0"><span style="font-family: 宋体;">支持</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">协议的</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">服务器有很多，这里我们将使用</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">作为的</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器进行后面的部署实践。</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">本身没有提供对</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">协议的支持，但是</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">自带的</span><span lang="EN-US">Netboot</span><span style="font-family: 宋体;">应用，通过</span><span lang="EN-US">Servlet</span><span style="font-family: 宋体;">过滤器技术实现了对</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">协议的简单支持。</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l2 level1 lfo5"><span style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">二、</span></span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器配置</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l3 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">新建</span><span lang="EN-US">Netboot</span><span style="font-family: 宋体;">配置</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">在</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">目录中复制</span><span lang="EN-US">default</span><span style="font-family: 宋体;">子目录，并将复制的目录名修改为</span><span lang="EN-US">netboot</span><span style="font-family: 宋体;">。注：实际上，</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器只需要部署</span><span lang="EN-US">netboot</span><span style="font-family: 宋体;">应用的</span><span lang="EN-US">Web</span><span style="font-family: 宋体;">服务，因而可以在</span><span lang="EN-US">minimal</span><span style="font-family: 宋体;">配置的基础上增加</span><span lang="EN-US">jbossweb</span><span style="font-family: 宋体;">服务即可。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l3 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">部署</span><span lang="EN-US">netboot</span><span style="font-family: 宋体;">应用</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">从</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">安装路径的</span><span lang="EN-US">docs/examples/netboot</span><span style="font-family: 宋体;">将</span><span lang="EN-US">netboot.war</span><span style="font-family: 宋体;">包以</span><span lang="EN-US">exploded</span><span style="font-family: 宋体;">方式部署到</span><span lang="EN-US">netboot</span><span style="font-family: 宋体;">配置的</span><span lang="EN-US">deploy</span><span style="font-family: 宋体;">目录里。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l3 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">3、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">拷贝</span><span lang="EN-US">JBoss</span><span style="font-family: 宋体;">微内核所需的</span><span lang="EN-US">jar</span><span style="font-family: 宋体;">包</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">在</span><span lang="EN-US">netboot.war</span><span style="font-family: 宋体;">目录下新建一个</span><span lang="EN-US">lib</span><span style="font-family: 宋体;">目录，将</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">安转路径中</span><span lang="EN-US">lib</span><span style="font-family: 宋体;">目录下的</span><span lang="EN-US">jar</span><span style="font-family: 宋体;">包全部拷贝过来。另外还需要拷贝</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">客户端</span><span lang="EN-US">webdavlib.jar</span><span style="font-family: 宋体;">及其所需的</span><span lang="EN-US">jdom.jar</span><span style="font-family: 宋体;">包到该目录中。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">注：</span><span lang="EN-US">webdavlib.jar</span><span style="font-family: 宋体;">和</span><span lang="EN-US">jdom.jar</span><span style="font-family: 宋体;">可以从</span><span lang="EN-US">apache</span><span style="font-family: 宋体;">的</span><span lang="EN-US"><a href="http://archive.apache.org/dist/jakarta/slide/binaries/jakarta-slide-webdavclient-bin-2.1.zip" onclick="javascript:pageTracker._trackPageview('/outbound/article/archive.apache.org');">slide<span style="font-family: 宋体;"><span lang="EN-US">开<span lang="EN-US">源<span lang="EN-US">项<span lang="EN-US">目</span></span></span></span></span></a></span><span style="font-family: 宋体;">中下载。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l3 level1 lfo1"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">4、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">建立集中管理的配置</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">在</span><span lang="EN-US">netboot.war</span><span style="font-family: 宋体;">目录下新建</span><span lang="EN-US">server</span><span style="font-family: 宋体;">子目录，然后可以将需要的</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">配置拷贝到</span><span lang="EN-US">server</span><span style="font-family: 宋体;">目录里即可。为了简单起见，这里以</span><span lang="EN-US">default</span><span style="font-family: 宋体;">配置为例，只需将</span><span lang="EN-US">default</span><span style="font-family: 宋体;">目录拷贝到</span><span lang="EN-US">server</span><span style="font-family: 宋体;">目录下。值得注意的是，集中管理的配置不支持</span><span lang="EN-US">exploded</span><span style="font-family: 宋体;">的</span><span lang="EN-US">war</span><span style="font-family: 宋体;">、</span><span lang="EN-US">sar</span><span style="font-family: 宋体;">包，因而必须将配置的</span><span lang="EN-US">war</span><span style="font-family: 宋体;">、</span><span lang="EN-US">sar</span><span style="font-family: 宋体;">包采用</span><span lang="EN-US">zip</span><span style="font-family: 宋体;">格式压缩。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">整个</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器的目录、文件布局如下：</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image1.png" ><img src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb1.png" alt="image" width="372" height="568" /></a></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; text-align: center; mso-char-indent-count: 0" align="center">
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l2 level1 lfo5"><span style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">三、</span></span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例配置</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">建立</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例的目录</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0"><span style="font-family: 宋体;">新建一个名为</span><span lang="EN-US">jbossas</span><span style="font-family: 宋体;">的目录，然后分别新建用于存放启动、关闭工具包的</span><span lang="EN-US">bin</span><span style="font-family: 宋体;">目录和用于存放</span><span lang="EN-US">endorsed</span><span style="font-family: 宋体;">标准</span><span lang="EN-US">jar</span><span style="font-family: 宋体;">包的</span><span lang="EN-US">lib</span><span style="font-family: 宋体;">目录。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">拷贝启动、关闭工具包</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0"><span style="font-family: 宋体;">从</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">安装路径的</span><span lang="EN-US">bin</span><span style="font-family: 宋体;">目录下拷贝</span><span lang="EN-US">run.bat</span><span style="font-family: 宋体;">、</span><span lang="EN-US">run.jar</span><span style="font-family: 宋体;">、</span><span lang="EN-US">shutdown.bat</span><span style="font-family: 宋体;">和</span><span lang="EN-US">shutdown.jar</span><span style="font-family: 宋体;">到新建的</span><span lang="EN-US">Jbossas/bin</span><span style="font-family: 宋体;">目录。这里以</span><span lang="EN-US">Windows</span><span style="font-family: 宋体;">操作系统为例，</span><span lang="EN-US">Linux</span><span style="font-family: 宋体;">操作系统拷贝相应的脚本文件即可。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0; mso-list: l0 level1 lfo2"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">3、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">拷贝</span><span lang="EN-US">endorsed</span><span style="font-family: 宋体;">标准</span><span lang="EN-US">jar</span><span style="font-family: 宋体;">包</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-outline-level: 1; mso-char-indent-count: 0"><span style="font-family: 宋体;">从</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">安装路径的</span><span lang="EN-US">lib/endorsed</span><span style="font-family: 宋体;">目录下将其中的所有文件拷贝到</span><span lang="EN-US">jbossas/lib/endorsed</span><span style="font-family: 宋体;">目录下。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">整个</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例目录、文件的布局结构如下：</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image2.png" ><img src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb2.png" alt="jboss as layout" width="166" height="110" /></a></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; text-align: center; mso-char-indent-count: 0" align="center">
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l2 level1 lfo5"><span style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">四、</span></span><span style="font-family: 宋体;">启动</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l4 level1 lfo3"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">启动</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span lang="EN-US">run –b192.168.1.177 –c netboot</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l4 level1 lfo3"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">启动</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">示例</span></p>
<p class="MsoNormal" style="margin-left: 18pt"><span lang="EN-US">run<span style="mso-spacerun: yes"> </span>&#8211;netboot=http://192.168.1.177:8080/netboot/ &#8211;bootlib=jdom.jar</span></p>
<p class="MsoNormal" style="margin-left: 18pt">
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l2 level1 lfo5"><span style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast" lang="EN-US"><span style="mso-list: ignore">五、</span></span><span style="font-family: 宋体;">验证</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l1 level1 lfo4"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">1、<span style="font: 7pt "> </span></span></span><span lang="EN-US">Jmx-console</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">打开浏览器，访问</span><span lang="EN-US">http://localhost:8080/jmx-console</span><span style="font-family: 宋体;">出现如下页面说明</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例启动成功！</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><a href="http://www.jbossweek.com/wp-content/uploads/2008/10/image3.png" ><img src="http://www.jbossweek.com/wp-content/uploads/2008/10/image-thumb3.png" alt="jmx console" width="558" height="360" /></a></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0">
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: -18pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l1 level1 lfo4"><span style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin" lang="EN-US"><span style="mso-list: ignore">2、<span style="font: 7pt "> </span></span></span><span style="font-family: 宋体;">热部署</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span style="font-family: 宋体;">往</span><span lang="EN-US">WebDAV</span><span style="font-family: 宋体;">服务器的</span><span lang="EN-US">netboot.war/server/default/deploy</span><span style="font-family: 宋体;">目录下添加一个</span><span lang="EN-US">zip</span><span style="font-family: 宋体;">格式压缩的</span><span lang="EN-US">HelloWeb.war</span><span style="font-family: 宋体;">包，在</span><span lang="EN-US">JBoss AS</span><span style="font-family: 宋体;">实例的控制台将会看到如下信息说明</span><span lang="EN-US">HelloWeb</span><span style="font-family: 宋体;">应用的热部署成功。</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0"><span lang="EN-US">INFO<span style="mso-spacerun: yes"> </span>[TomcatDeployer] deploy, ctxPath=/HelloWeb, warUrl=file:/D:/ jbossas/server/default/tmp/deploy/tmp46821HelloWeb-exp.war/</span></p>
<p class="MsoListParagraph" style="margin-left: 18pt; text-indent: 0cm; line-height: 150%; mso-char-indent-count: 0">
]]></content:encoded>
			<wfw:commentRss>http://www.jbossweek.com/2008/10/jboss-netboot-in-action/feed/</wfw:commentRss>
		</item>
		<item>
		<title>使用JBossTools 开发Seam POJO应用：准备</title>
		<link>http://www.jbossweek.com/2008/07/develop-seam-app-with-jbosstools-1/</link>
		<comments>http://www.jbossweek.com/2008/07/develop-seam-app-with-jbosstools-1/#comments</comments>
		<pubDate>Fri, 11 Jul 2008 15:02:09 +0000</pubDate>
		<dc:creator>jbossweek</dc:creator>
		
		<category><![CDATA[JBossTools]]></category>

		<category><![CDATA[Seam]]></category>

		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://www.jbossweek.com/?p=80</guid>
		<description><![CDATA[使用JBossTools 开发Seam POJO应用的第一部分，提供了例子的简介、业务场景等背景知识，同时描述了建立seam项目和准备样式表和图片。]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">本教程将以</span><span lang="EN-US">Seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">自带的</span><span lang="EN-US">Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">例子的业务场景为背景，使用</span><span lang="EN-US">JBossTools</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">一步一步地讲解Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">应用的开发过程。与</span><span lang="EN-US">Seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">自带</span><span lang="EN-US">Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">例子使用</span><span lang="EN-US">EJB3</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">不同的是，本教程仅会用到</span><span lang="EN-US">POJO</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">和</span><span lang="EN-US">JPA</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">，并以</span><span lang="EN-US">WAR</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">包的方式进行部署。</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l1 level1 lfo2"><span lang="EN-US" style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast"><span style="mso-list: ignore">一、</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">开发环境</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">应用服务器：</span><span lang="EN-US">JBoss 4.2.2 GA</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">开发工具：</span><span lang="EN-US">JBossTools 2.1.2</span></p>
<p class="MsoNormal" style="line-height: 150%"><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">数据库：</span><span lang="EN-US">HSQL</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">版本：</span><span lang="EN-US">2.0.2 SP1</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l1 level1 lfo2"><span lang="EN-US" style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast"><span style="mso-list: ignore">二、</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">应用场景</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US">Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">例子是一个完整的宾馆客房预订系统，包括以下功能：</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">1.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">用户注册</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">登录</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">3.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">注销</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">4.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">设置密码</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">5.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">搜索宾馆</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">6.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">客房预订</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">7.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">预定确认</span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">8.<span roman??="roman??" new="new" times="times">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">查询预定情况</span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span></p>
<p>&#160;</p>
</p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l1 level1 lfo2"><span lang="EN-US" style="mso-bidi-font-family: 宋体; mso-bidi-theme-font: minor-fareast"><span style="mso-list: ignore">三、</span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">构建mybooking项目框架</span></p>
<div class="MsoNormal" style="line-height: 150%">
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span></p>
<p class="MsoNormal" style="line-height: 150%"><span lang="EN-US"></span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">1.<span style="font: 7pt " times new roman"">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">准备</span><span lang="EN-US">seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">项目：在</span><span lang="EN-US">JBossTools</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">中按照《</span><span lang="EN-US"><a href="http://www.jbossweek.com/2008/05/jbosstools-tutorial-seam/" >JBoosTools<span lang="EN-US" style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span lang="EN-US">实践系列：</span></span>Seam 2.0<span lang="EN-US" style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin"><span lang="EN-US">应用开发入门</span></span></a></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">》步骤新建名称为</span><span lang="EN-US">mybooking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">的</span><span lang="EN-US">Seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">项目。注意：项目建立过程中需要设置的数据库连接信息如下：</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%; mso-para-margin-left: 2.0gd"><span lang="EN-US">Connecton profile</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">：</span><span lang="EN-US">booking</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%; mso-para-margin-left: 2.0gd"><span lang="EN-US">Driver</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">：</span><span lang="EN-US">Hypersonic DB</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%; mso-para-margin-left: 2.0gd"><span lang="EN-US">Database location</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">：</span><span lang="EN-US">.</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%; mso-para-margin-left: 2.0gd"><span lang="EN-US">User name</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">：</span><span lang="EN-US">sa</span></p>
<p class="MsoNormal" style="margin-left: 21pt; line-height: 150%; mso-para-margin-left: 2.0gd"><span lang="EN-US">
<p>&#160;</p>
<p>     </span></p>
<p class="MsoListParagraph" style="margin-left: 21pt; text-indent: -21pt; line-height: 150%; mso-char-indent-count: 0; mso-list: l0 level1 lfo1"><span lang="EN-US" style="mso-fareast-font-family: calibri; mso-fareast-theme-font: minor-latin; mso-bidi-font-family: calibri; mso-bidi-theme-font: minor-latin"><span style="mso-list: ignore">2.<span style="font: 7pt " times new roman"">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span></span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">准备样式表和图片：为了简单起见，本教程将使用</span><span lang="EN-US">Seam</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">自带</span><span lang="EN-US">Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">例子中的样式表和图片文件。在</span><span lang="EN-US">Windows</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">资源管理器中选中</span><span lang="EN-US">Booking</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-family: 宋体; mso-fareast-theme-font: minor-fareast; mso-hansi-font-family: calibri; mso-hansi-theme-font: minor-latin">例子中</span><span lang="EN-US">view</span><span style="font-family: 宋体; mso-ascii-font-family: calibri; mso-ascii-theme-font: minor-latin; mso-fareast-font-famil