<?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"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>修行的武者</title>
	<atom:link href="http://blog.donews.com/foxgem/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.donews.com/foxgem</link>
	<description>开发研究手记</description>
	<lastBuildDate>Tue, 19 Sep 2006 06:42:00 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>再次搬家</title>
		<link>http://blog.donews.com/foxgem/archive/2006/09/19/1041587.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/09/19/1041587.aspx#comments</comments>
		<pubDate>Tue, 19 Sep 2006 06:42:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[杂项]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/09/19/1041587.aspx</guid>
		<description><![CDATA[新地址：<a href="http://foxgem.javaeye.com/">http://foxgem.javaeye.com/</a>。]]></description>
			<content:encoded><![CDATA[<p>新地址：<a href="http://foxgem.javaeye.com/">http://foxgem.javaeye.com/</a>。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/09/19/1041587.aspx/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>持续集成环境：Maven2 + Subversion + CruiseControl</title>
		<link>http://blog.donews.com/foxgem/archive/2006/09/16/1039299.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/09/16/1039299.aspx#comments</comments>
		<pubDate>Sat, 16 Sep 2006 07:39:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/09/16/1039299.aspx</guid>
		<description><![CDATA[持续集成环境：Maven2 + Subversion + CruiseControl]]></description>
			<content:encoded><![CDATA[<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>1.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>创建Maven2项目，并import到Subversion Repository。</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>2.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>下载CruiseControl，版本2.5。</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>3.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>创建CruiseControl的工作目录，结构如下：</div>
<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #cccccc; MARGIN: auto auto auto 23.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 207pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top" width="276">
<div style="LINE-HEIGHT: 150%">ccworkplace\</div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \logs</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \project_name</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \checkout</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \project_name</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \artifacts</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; \project_name</span></div>
</td>
</tr>
</tbody>
</table>
<div style="MARGIN: 0cm 0cm 0pt 21pt; LINE-HEIGHT: 150%">注：CruiseControl支持构建多个项目，每个项目涉及：logs、checkout、artifacts。它们的作用分别是：记录build结果、checkout代码的工作目录、部件发布地。这个结构就是为了这三个目的而创建的，每一级下的project_name都是对应的。</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>4.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>修改%CruiseControl_Home%/ webapps/cruisecontrol/WEB-INF/web.xml：</div>
<div style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>-<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>查找：context-param logDir；修改它的值：&hellip;/ccworkplace/logs</div>
<div style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>-<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>查找：ArtifactServlet的init-param rootDir；修改它的值：&hellip;/ccworkplace/artifacts</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>5.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>修改%CruiseControl_Home%/config.xml，内容：</div>
<table style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #cccccc; MARGIN: auto auto auto 23.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent" valign="top">
<div style="LINE-HEIGHT: 150%">&lt;cruisecontrol&gt;</div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;cruisedir&quot; value=&quot;&hellip;/ccworkplace&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;logdir&quot; value=&quot;${cruisedir}/logs&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;checkoutdir&quot; value=&quot;${cruisedir}/checkout&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;property name=&quot;artifactdir&quot; value=&quot;${cruisedir}/artifacts&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%">&nbsp;</div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;project name=&quot;codelinecomponents&quot;&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;listeners&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;currentbuildstatuslistener file=&quot;${logdir}/${project.name}/status.txt&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/listeners&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;bootstrappers&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;svnbootstrapper localWorkingCopy=&quot;${checkoutdir}/${project.name}&quot; /&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&lt;/bootstrappers&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;modificationset quietperiod=&quot;30&quot;&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;svn localWorkingCopy=&quot;${checkoutdir}/${project.name}&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/modificationset&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;schedule interval=&quot;300&quot;&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;maven2 mvnscript=&quot;%M2_Home%/bin/mvn.bat&quot;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;pomfile=&quot;${checkoutdir}/${project.name}/pom.xml&quot;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; goal=&quot;clean site package&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/schedule&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;log dir=&quot;${logdir}/${project.name}&quot;&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;merge dir=&quot;${checkoutdir}/${project.name}/target/surefire-reports&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/log&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;publishers&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;onsuccess&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactspublisher dest=&quot;${artifactdir}/${project.name}&quot; </span></div>
<div style="MARGIN: 0cm 0cm 0pt 94.5pt; TEXT-INDENT: -94.5pt; LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; file=&quot;${checkoutdir}/${project.name}/target/${project.name}.jar&quot;/&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/onsuccess&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/publishers&gt;</span></div>
<div style="LINE-HEIGHT: 150%"><span>&nbsp;&nbsp;&nbsp; &lt;/project&gt;</span></div>
<div style="LINE-HEIGHT: 150%">&lt;/cruisecontrol&gt;</div>
</td>
</tr>
</tbody>
</table>
<div style="LINE-HEIGHT: 150%">&nbsp;</div>
<div style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; LINE-HEIGHT: 150%"><span>6.<span style="FONT: 7pt 'Times New Roman'"><font size="3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span>运行%CruiseControl_Home%/cruisecontrol.bat，因为cruisecontrol.bat已经自带了jetty，之后进入：<a href="http://localhost:8080/">http://localhost:8080/</a>即可。</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/09/16/1039299.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>搞定了一个birt的问题</title>
		<link>http://blog.donews.com/foxgem/archive/2006/08/15/1001545.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/08/15/1001545.aspx#comments</comments>
		<pubDate>Tue, 15 Aug 2006 08:56:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/08/15/1001545.aspx</guid>
		<description><![CDATA[在导出数据时，选择导出列后选择"打开"。弹出的excel对话框提示："excel检查到"download"的sylk文件，但是不能将其加载……"。然后，弹出的excel中包含空的数据。]]></description>
			<content:encoded><![CDATA[<p>问题：<br />在导出数据时，选择导出列后选择&quot;打开&quot;。弹出的excel对话框提示：&quot;excel检查到&quot;download&quot;的sylk文件，但是不能将其加载&hellip;&hellip;&quot;。然后，弹出的excel中包含空的数据。</p>
<p>原因：<br />如果文本文件或csv文件的前两个字符是ID，那么excel将其视为格式无效。而此操作，birt导出的恰恰是csv文件。且，由于我的产生报表的SQL语句是：select ID ,PARENTID,NAME,DESCRIPTION,TYPE_,URL,PROCESSDEFINITION,OFF_SET from FOGDB.UR_MENU_PROCESS。因此，使得产生的csv文件的前两个字符正好是ID，于是产生错误。</p>
<p>解决办法：<br />了解了错误的原因，解决办法就很自然了。将SQL改为：select ID KEY,PARENTID,NAME,DESCRIPTION,TYPE_,URL,PROCESSDEFINITION,OFF_SET from FOGDB.UR_MENU_PROCESS。问题解决。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/08/15/1001545.aspx/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Maximo二次开发经验谈</title>
		<link>http://blog.donews.com/foxgem/archive/2006/08/09/993619.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/08/09/993619.aspx#comments</comments>
		<pubDate>Wed, 09 Aug 2006 07:55:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/08/09/993619.aspx</guid>
		<description><![CDATA[前不久，刚刚做完成了一个maximo的应用有些话语不吐不快。]]></description>
			<content:encoded><![CDATA[<p>&nbsp;前不久，刚刚做完成了一个maximo的应用有些话语不吐不快：<br />1.&nbsp;定时备份。由于maximo 6使用数据库来包含各种相关的配置信息，备份数据库是非常重要的。在Oracle数据库，Windows环境下，可以使用以下的bat文件：<br />FOR /F &quot;tokens=1-4 delims=/ &quot; %%i IN (&#8217;date /t&#8217;) DO SET DATE=%%i<br />exp userid=管理员用户/口令 owner=模式拥有者 file=目录名\maximo%date%.dmp log=目录名\maximo%date%.log<br />&nbsp;然后，使用&quot;任务计划&quot;使bat文件每天定点运行。<br />2.&nbsp;版本控制。将相关的java代码纳入版本控制软件，这类软件选择很多，如vss、cvs、subversion等。<br />3.&nbsp;反编译软件。MRO提供的支持网站和论坛，大多对于报表开发和其本身提供的应用涉及较多。对于真正需要编程解决的问题，个人觉得涉及不够。加上其搜索功能使用不便，使得遇到问题需要支持时，大多无法获取相关的资源。远不如根据&quot;数据库配置&quot;和&quot;应用程序设计器&quot;中所说明的类，然后反编译之后了解得多。<br />4.&nbsp;风格一致。使用Maximo二次开发，使得开发后的应用的风格与现有应用保持是非常重要而且是必须的，这样可以减少用户学习新应用的时间。对于数据对象也是如此。<br />5.&nbsp;学会模仿。通过观察类似风格的界面、数据对象的设计，是有效的学习方法。这样做，也可以大大的提高开发的效率、以及完成质量。而这，也是反编译器大显身手的地方。<br />6.&nbsp;区分自定义类。对于自定义的java类，不要使用与Maximo内部类同样的包结构，但是可以模仿。如：业务层类使用com.hgsoft.app.应用名；表现层类使用com.hgsoft.webclient.应用名。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/08/09/993619.aspx/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>不错的Eclipse资源网站</title>
		<link>http://blog.donews.com/foxgem/archive/2006/06/29/931246.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/06/29/931246.aspx#comments</comments>
		<pubDate>Thu, 29 Jun 2006 09:41:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[杂项]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/06/29/931246.aspx</guid>
		<description><![CDATA[无意间发现了一个不错的Eclipse资源网站：easyeclipse]]></description>
			<content:encoded><![CDATA[<p>&nbsp; 无意间发现了一个不错的Eclipse资源网站：<a href="http://www.easyeclipse.org/site/home/">easyeclipse</a>。该网站最大的特点就是提供了根据常用开发情况，将常用插件打包后的再分发包。对于初次接触Eclipse的人非常有帮助，而且也省了很多找插件的时间。有兴趣看看吧。<img alt="" src="/fckeditor/editor/images/smiley/msn/regular_smile.gif" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/06/29/931246.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>maven2的pom.xml例子</title>
		<link>http://blog.donews.com/foxgem/archive/2006/06/26/927475.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/06/26/927475.aspx#comments</comments>
		<pubDate>Mon, 26 Jun 2006 05:56:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/06/26/927475.aspx</guid>
		<description><![CDATA[maven2的pom.xml例子]]></description>
			<content:encoded><![CDATA[<p>下面是我的一个项目的maven2（使用的是maven2.04）的文件的例子：</p>
<p>&lt;project xmlns=&quot;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0</a>&quot; xmlns:xsi=&quot;<a href="http://www.w3.org/2001/XMLSchema-instance">http://www.w3.org/2001/XMLSchema-instance</a>&quot;<br />&nbsp; xsi:schemaLocation=&quot;<a href="http://maven.apache.org/POM/4.0.0">http://maven.apache.org/POM/4.0.0</a> <a href="http://maven.apache.org/maven-v4_0_0.xsd">http://maven.apache.org/maven-v4_0_0.xsd</a>&quot;&gt;<br />&nbsp; &lt;modelVersion&gt;4.0.0&lt;/modelVersion&gt;<br />&nbsp; &lt;groupId&gt;CodeLineComponents&lt;/groupId&gt;<br />&nbsp; &lt;artifactId&gt;CodeLineComponents&lt;/artifactId&gt;<br />&nbsp; &lt;packaging&gt;jar&lt;/packaging&gt;<br />&nbsp; &lt;version&gt;1.0-SNAPSHOT&lt;/version&gt;<br />&nbsp; &lt;name&gt;CodeLine Components&lt;/name&gt;<br />&nbsp; &lt;url&gt;http://maven.apache.org&lt;/url&gt;<br />&nbsp; &lt;dependencies&gt;<br />&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;javax.servlet&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;servlet-api&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.3&lt;/version&gt;<br />&nbsp;&nbsp; &lt;scope&gt;compile&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;hibernate&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;hibernate&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.1.2&lt;/version&gt;<br />&nbsp;&nbsp; &lt;scope&gt;compile&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;commons-logging&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;commons-logging&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.0.3&lt;/version&gt;<br />&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;commons-collections&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;commons-collections&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.1&lt;/version&gt;<br />&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;odmg&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;odmg&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;3.0&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;dom4j&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;dom4j&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.4&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;cglib&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;cglib-full&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;2.0.2&lt;/version&gt;<br />&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;ehcache&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;ehcache&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;0.6&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;javax.transaction&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;jta&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.0.1B&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;easymock&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;easymock&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.1&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;hsqldb&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;hsqldb&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;1.7.3.0&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp;&nbsp;&nbsp; &lt;dependency&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;junit&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;junit&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;version&gt;3.8.1&lt;/version&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;scope&gt;test&lt;/scope&gt;<br />&nbsp;&nbsp;&nbsp; &lt;/dependency&gt;<br />&nbsp; &lt;/dependencies&gt;<br />&nbsp; &lt;reporting&gt;<br />&nbsp;&nbsp;&nbsp; &lt;plugins&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-surefire-report-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-jxr-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin&gt;<br />&nbsp;&nbsp;&lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-javadoc-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&lt;/plugin&gt;<br />&nbsp;&nbsp;&lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-pmd-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&lt;/plugin&gt;<br />&nbsp;&nbsp;&lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.apache.maven.plugins&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;maven-checkstyle-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;configuration&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;configLocation&gt;config/sun_checks.xml&lt;/configLocation&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;/configuration&gt;<br />&nbsp;&nbsp;&lt;/plugin&gt;<br />&nbsp;&nbsp;&lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;cobertura-maven-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&lt;/plugin&gt;<br />&nbsp; &lt;!&#8211; 下面2个plugin暂时没法下载&nbsp;&#8211;&gt;<br />&nbsp;&nbsp;&lt;!&#8211; plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;jdepend-maven-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;plugin&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;groupId&gt;org.codehaus.mojo&lt;/groupId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;artifactId&gt;findbugs-maven-plugin&lt;/artifactId&gt;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/plugin &#8211;&gt;<br />&nbsp;&lt;/plugins&gt;<br />&nbsp; &lt;/reporting&gt;<br />&lt;/project&gt;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/06/26/927475.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>内存大也有内存大坏处</title>
		<link>http://blog.donews.com/foxgem/archive/2006/05/31/895921.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/05/31/895921.aspx#comments</comments>
		<pubDate>Wed, 31 May 2006 02:06:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[杂项]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/05/31/895921.aspx</guid>
		<description><![CDATA[     这几天为了装上 vs.net 2005 express web developer可费了不少劲。该软件非得要在c盘装上1.4G的东西，即使你选择安装目录在d盘。但是，问题是我的c盘free空间仅余1.2g。没办法，清理吧。在清理过程中，我突然发现我的算术程度出了问题：c盘空间6.8G，选择c盘下所有的文件目录发现才4.05G，但是空闲空间只有1.2g。@#？]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp; 这几天为了装上 vs.net 2005 express web developer可费了不少劲。该软件非得要在c盘装上1.4G的东西，即使你选择安装目录在d盘。但是，问题是我的c盘free空间仅余1.2g。没办法，清理吧。在清理过程中，我突然发现我的算术程度出了问题：c盘空间6.8G，选择c盘下所有的文件目录发现才4.05G，但是空闲空间只有1.2g。@#？<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 突然想起可能还要隐藏文件，进入文件目录选项，打开显示系统文件的开关。此时，c盘中出现了一个巨大的隐藏文件hiberfil.sys，居然有2G。乖乖，什么文件这么大？经上网查证，原来和休眠相关。其大小=内存大小，用于保存内存的内容，以便机器从休眠状态启动时内恢复休眠时的内容。在控制面板中的&ldquo;电源选项&rdquo;中关闭&ldquo;启用休眠&rdquo;，即万事大吉。这正应了那句老话：&ldquo;凡是有利就有弊&rdquo;！<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 顺便问比哥一句：&ldquo;为何非得要在C盘装那么多内容呀？&rdquo;，要知道当时我d盘的剩余空间可是5.4G！</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/05/31/895921.aspx/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ActiveMQ（ver 3.2.1）的jndi支持</title>
		<link>http://blog.donews.com/foxgem/archive/2006/05/09/861535.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/05/09/861535.aspx#comments</comments>
		<pubDate>Tue, 09 May 2006 03:19:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/05/09/861535.aspx</guid>
		<description><![CDATA[ActiveMQ可以与JNDI提供者配合使用，而且其本身也提供了JNDI能力，使得客户端可以在缺少JNDI提供者的情况下享受JNDI编程带来的好处。需要注意的是，即使ActiveMQ提供了这样的能力，也不要把它作为真正的JNDI提供者使用，毕竟它并不是为了提供专业的JNDI能力而存在的。ActiveMQ使用JNDI的情形：。。。。。。]]></description>
			<content:encoded><![CDATA[<h3 style="MARGIN: 13pt 0cm"><span style="FONT-SIZE: 12pt; LINE-HEIGHT: 173%; FONT-FAMILY: 宋体; mso-bidi-font-size: 16.0pt; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;"></span><span lang="EN-US" style="FONT-SIZE: 12pt; LINE-HEIGHT: 173%; mso-bidi-font-size: 16.0pt">
</p>
<p></span></h3>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">可以与</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供者配合使用，而且其本身也提供了</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">能力，使得客户端可以在缺少</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供者的情况下享受</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">编程带来的好处。需要注意的是，即使</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供了这样的能力，也不要把它作为真正的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提供者使用，毕竟它并不是为了提供专业的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">能力而存在的。</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">使用</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">的情形：</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 21.0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: &quot;Times New Roman&quot;"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">1.</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span></b><font size="3"><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">自身的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">。</span><span lang="EN-US">
</p>
<p></span></b></font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">仅在应用中只有于</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">相关的部分，如</span><span lang="EN-US"><font face="Times New Roman">JMS</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，需要</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">支持的情况下使用。在这种环境下，不需要其它的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">提供者。如果应用还有其它地方需要</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">支持，如</span><span lang="EN-US"><font face="Times New Roman">JDBC</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，那么使用专业的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">提供者。</span><span lang="EN-US"><font face="Times New Roman">jnid.properties</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">例子（使用</span><span lang="EN-US"><font face="Times New Roman">modules/core/src/test/jndi.properties</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">例子说明</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">jndi.properties</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">结构和含义。）：</span></font></p>
<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #cccccc; MARGIN: auto auto auto 23.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 402.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="537">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3"># START SNIPPET: jndi</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">创建</span><span lang="EN-US"><font face="Times New Roman">InitialContext</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的工厂类。<b style="mso-bidi-font-weight: normal">（必须要）</b></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">java.naming.factory.initial = org.activemq.jndi.ActiveMQInitialContextFactory</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">Broker url</font></span><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">（必须要）</span></b></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">java.naming.provider.url = tcp://localhost:61616</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><a style="mso-comment-reference: f_1; mso-comment-date: 20060423T1439"><span lang="EN-US"><font face="Times New Roman" size="3">#</font></span></a><font size="3"><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">是否使用内嵌</span><span lang="EN-US"><font face="Times New Roman">Broker</font></span></span><span style="mso-comment-continuation: 1"><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">（可选）</span></b></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-comment-continuation: 1"><span lang="EN-US"><font face="Times New Roman" size="3">#useEmbeddedBroker = true</font></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-comment-continuation: 1"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="mso-comment-continuation: 1"><span lang="EN-US"><font face="Times New Roman">#</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">内嵌</span><span lang="EN-US"><font face="Times New Roman">Broker</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用的</span><span lang="EN-US"><font face="Times New Roman">xml</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">配置文件</span><span lang="EN-US"><font face="Times New Roman">url</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">。这个</span><span lang="EN-US"><font face="Times New Roman">url</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">可以是在</span><span lang="EN-US"><font face="Times New Roman">classpath</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">中，</span></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span style="mso-comment-continuation: 1"><span lang="EN-US"><font face="Times New Roman">#</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">或在文件路径中。在文件路径中需要采用</span><span lang="EN-US"><font face="Times New Roman">file:filepath</font></span></span><span style="mso-comment-continuation: 1"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的格式<b style="mso-bidi-font-weight: normal">（可选）</b></span></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span style="mso-comment-continuation: 1"><span lang="EN-US"><font face="Times New Roman" size="3">#brokerXmlConfig = file:src/conf/sample-conf/default.xml</font></span></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">指定</span><span lang="EN-US"><font face="Times New Roman">connectionFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">jndi</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">名字，多个名字之间可以逗号分隔。<b style="mso-bidi-font-weight: normal">（必须要）</b></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">以下为例：</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">对于</span><span lang="EN-US"><font face="Times New Roman">topic</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，使用</span><span lang="EN-US"><font face="Times New Roman">(TopicConnectionFactory)context.lookup(&quot;connectionFactry&quot;)</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">对于</span><span lang="EN-US"><font face="Times New Roman">queue</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，</span><span lang="EN-US"><font face="Times New Roman">(QueueConnectionFactory)context.lookup(&quot;connectionFactory&quot;)</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">connectionFactoryNames = connectionFactory, queueConnectionFactory, topicConnectionFactry</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">注册</span><span lang="EN-US"><font face="Times New Roman">queue</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，格式：<b style="mso-bidi-font-weight: normal">（必须要）</b></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">#queue.[jndiName] = [physicalName]</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用时：</span><span lang="EN-US"><font face="Times New Roman">(Queue)context.lookup(&quot;jndiName&quot;)</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，此处是</span><span lang="EN-US"><font face="Times New Roman">MyQueue</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">queue.MyQueue = example.MyQueue</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">注册</span><span lang="EN-US"><font face="Times New Roman">topic</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，格式：<b style="mso-bidi-font-weight: normal">（必须要）</b></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3"># topic.[jndiName] = [physicalName]</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">#</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用时：</span><span lang="EN-US"><font face="Times New Roman">(Topic)context.lookup(&quot;jndiName&quot;)</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，此处是</span><span lang="EN-US"><font face="Times New Roman">MyTopic</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">topic.MyTopic = example.MyTopic</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3"># END SNIPPET: jndi</font></span></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><span style="mso-tab-count: 1"><font face="Times New Roman">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">对于采用这种方式的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，还有一个方便的配置：动态配置</span><span lang="EN-US"><font face="Times New Roman">topic</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">和</span><span lang="EN-US"><font face="Times New Roman">queue</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，而不需要在</span><span lang="EN-US"><font face="Times New Roman">jndi.properties</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">中指定。格式：</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo2; tab-stops: list 42.0pt"><font face="Times New Roman"><span lang="EN-US" style="mso-fareast-font-family: &quot;Times New Roman&quot;"><span style="mso-list: Ignore"><font size="3">-</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font size="3">Topic</font></span></font><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">：</span><span lang="EN-US"><font face="Times New Roman">Topic topic = (Topic)context.lookup(&quot;dynamicTopics/</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">名字</span><span lang="EN-US"><font face="Times New Roman">&quot;);</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 42pt; TEXT-INDENT: -21pt; mso-list: l0 level2 lfo2; tab-stops: list 42.0pt"><font face="Times New Roman"><span lang="EN-US" style="mso-fareast-font-family: &quot;Times New Roman&quot;"><span style="mso-list: Ignore"><font size="3">-</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span lang="EN-US"><font size="3">Queue</font></span></font><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">：</span><span lang="EN-US"><font face="Times New Roman">Queue queue = (Queue)context.lookup(&quot;dynamicQueues/</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">名字</span><span lang="EN-US"><font face="Times New Roman">&quot;);</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt 21pt; TEXT-INDENT: -21pt; mso-list: l1 level1 lfo1; tab-stops: list 21.0pt"><b style="mso-bidi-font-weight: normal"><span lang="EN-US" style="mso-fareast-font-family: &quot;Times New Roman&quot;"><span style="mso-list: Ignore"><font face="Times New Roman"><font size="3">2.</font><span style="FONT: 7pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></font></span></span></b><font size="3"><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">使用外部的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">提供者（以</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span></b><b style="mso-bidi-font-weight: normal"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">为例）</span><span lang="EN-US">
</p>
<p></span></b></font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21pt"><font size="3"><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">此处以</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">为例，说明</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">如何与外部的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">提供者协作。</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">配置由两部分组成：对象的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">名字和对象初始化属性值。由于</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">对于</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">来说是外部组件，因此</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">需要知道如何加载这些相关类。显然，</span><span lang="EN-US"><font face="Times New Roman">ActiveMQ</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">是知道如何完成这一任务的。而且</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">规范也允许自定义如何加载对象，只要它实现了</span><span lang="EN-US"><font face="Times New Roman">ObjectFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">接口即可。而</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">本身也提供了注册</span><span lang="EN-US"><font face="Times New Roman">ObjectFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的方法，使得可以使用外部的组件完成类的加载。以下是一个典型的</span><span lang="EN-US"><font face="Times New Roman">Tomcat</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的</span><span lang="EN-US"><font face="Times New Roman">JNDI</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">的配置例子：</span></font></p>
<table class="MsoTableGrid" style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; BACKGROUND: #cccccc; MARGIN: auto auto auto 23.4pt; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none; BORDER-COLLAPSE: collapse; mso-border-alt: solid windowtext .5pt; mso-yfti-tbllook: 480; mso-padding-alt: 0cm 5.4pt 0cm 5.4pt; mso-border-insideh: .5pt solid windowtext; mso-border-insidev: .5pt solid windowtext" cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr style="mso-yfti-irow: 0; mso-yfti-firstrow: yes; mso-yfti-lastrow: yes">
<td style="BORDER-RIGHT: windowtext 1pt solid; PADDING-RIGHT: 5.4pt; BORDER-TOP: windowtext 1pt solid; PADDING-LEFT: 5.4pt; PADDING-BOTTOM: 0cm; BORDER-LEFT: windowtext 1pt solid; WIDTH: 402.7pt; PADDING-TOP: 0cm; BORDER-BOTTOM: windowtext 1pt solid; BACKGROUND-COLOR: transparent; mso-border-alt: solid windowtext .5pt" valign="top" width="537">
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">&lt;!&#8211; </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">连接工厂，它实现了</span><span lang="EN-US"><font face="Times New Roman">TopicConnectionFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">和</span><span lang="EN-US"><font face="Times New Roman">QueueConnectionFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><span style="mso-spacerun: yes"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; </font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">因此，只需要一个即可。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;</span>&#8211;&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;Resource name=&quot;jms/ConnectionFactory&quot; auth=&quot;Container&quot; </font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 52.5pt; mso-char-indent-count: 5.0"><span lang="EN-US"><font face="Times New Roman" size="3">type=&quot;org.activemq.ActiveMQConnectionFactory&quot;/&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;ResourceParams name=&quot;jms/ConnectionFactory&quot;&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;name&gt;factory&lt;/name&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">&lt;!&#8211; </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">这个类实现了</span><span lang="EN-US"><font face="Times New Roman">ObjectFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">，负责加载这个资源。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><font size="3"><span lang="EN-US"><span style="mso-spacerun: yes"><font face="Times New Roman">&nbsp;&nbsp;&nbsp; </font></span></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">以下的这些参数，都是</span><span lang="EN-US"><font face="Times New Roman">ActiveMQConnectionFactory</font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">类的属性。</span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 21.75pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;</span>&#8211;&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;org.activemq.jndi.JNDIReferenceFactory&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;brokerURL&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;tcp://localhost:61616&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;brokerName&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;LocalActiveMQBroker&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;useEmbeddedBroker&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;true&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;/ResourceParams&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">&lt;!&#8211; </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">指明</span><span lang="EN-US"><font face="Times New Roman">Topic &#8211;&gt;</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;Resource name=&quot;jms/Topic&quot; auth=&quot;Container&quot;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 42pt; mso-char-indent-count: 4.0"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;</span>type=&quot;org.activemq.message.ActiveMQTopic&quot;/&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;ResourceParams name=&quot;jms/Topic&quot;&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;factory&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;org.activemq.jndi.JNDIReferenceFactory&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;physicalName&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;FOO.TOPIC&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;/ResourceParams&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US">
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
<p></span></p>
<p><font face="Times New Roman" size="3">&nbsp;</font></p>
</p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font size="3"><span lang="EN-US"><font face="Times New Roman">&lt;!&#8211; </font></span><span style="FONT-FAMILY: 宋体; mso-ascii-font-family: &quot;Times New Roman&quot;; mso-hansi-font-family: &quot;Times New Roman&quot;">指明</span><span lang="EN-US"><font face="Times New Roman">Queue &#8211;&gt;</font></span></font></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;Resource name=&quot;jms/Queue&quot; auth=&quot;Container&quot;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt; mso-char-indent-count: 3.0"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;</span><span style="mso-spacerun: yes">&nbsp; </span>type=&quot;org.activemq.message.ActiveMQQueue&quot;/&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman" size="3">&lt;ResourceParams name=&quot;jms/Queue&quot;&gt;</font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;factory&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;org.activemq.jndi.JNDIReferenceFactory&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;parameter&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;name&gt;physicalName&lt;/name&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp;&nbsp;&nbsp; </span>&lt;value&gt;FOO.QUEUE&lt;/value&gt;</font></font></span></p>
<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US"><font face="Times New Roman"><font size="3"><span style="mso-spacerun: yes">&nbsp; </span>&lt;/parameter&gt;</font></font></span></p>
</td>
</tr>
</tbody>
</table>
<div style="mso-element: comment-list"><font face="Times New Roman" size="3"></font></div>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/05/09/861535.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>终于给Eclipse装上了Geronimo plugin</title>
		<link>http://blog.donews.com/foxgem/archive/2006/03/14/767401.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/03/14/767401.aspx#comments</comments>
		<pubDate>Tue, 14 Mar 2006 04:07:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/03/14/767401.aspx</guid>
		<description><![CDATA[     自从下载了Eclipse的wtp版本，就一直没有装上过Geronimo的plugin。在建立web工程时会选择服务器列表，点击“Don't see your server listed”时可以看到geronimo，但是我就从来没有使用Eclipse正常更新过。
    现在，使用“software updates” -> “find and install......”，然后输入“http://geronimo.apache.org/devtools”更新站点，就ok了。有时可能会因为网络问题报错，或说对应的feature不存在。此时不妨换个站点（镜像站点，它会在第一次检查之后弹出）试试。只是奇怪得很，它居然下载了一个60多M的geronimo......搞不懂呀。]]></description>
			<content:encoded><![CDATA[<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 自从下载了Eclipse的wtp版本，就一直没有装上过Geronimo的plugin。在建立web工程时会选择服务器列表，点击<a href="http://geronimo.apache.org/devtools/Screenshot_1.jpg">&ldquo;Don&#8217;t see your server listed&rdquo;</a>时可以看到geronimo，但是我就从来没有使用Eclipse正常更新过。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 现在，使用&ldquo;software updates&rdquo; -&gt; &ldquo;find and install&#8230;&#8230;&rdquo;，然后输入&ldquo;http://geronimo.apache.org/devtools&rdquo;更新站点，就ok了。有时可能会因为网络问题报错，或说对应的feature不存在。此时不妨换个站点（镜像站点，它会在第一次检查之后弹出）试试。只是奇怪得很，它居然下载了一个60多M的geronimo&#8230;&#8230;搞不懂呀。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/03/14/767401.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ObjectMother学习笔记</title>
		<link>http://blog.donews.com/foxgem/archive/2006/03/03/751547.aspx</link>
		<comments>http://blog.donews.com/foxgem/archive/2006/03/03/751547.aspx#comments</comments>
		<pubDate>Fri, 03 Mar 2006 08:45:00 +0000</pubDate>
		<dc:creator>foxgem</dc:creator>
				<category><![CDATA[practices]]></category>

		<guid isPermaLink="false">http://blog.donews.com/foxgem/archive/2006/03/03/751547.aspx</guid>
		<description><![CDATA[刚刚学习了ObjectMother，赶紧记下来先。]]></description>
			<content:encoded><![CDATA[<p>1。目的：用于构造测试对象，简化测试。根据应用大小的不同，ObjectMother也有不同的实现方式。对于小型的应用，通常构造一个工具类就解决问题了；对于大型应用，通常需要几个ObjectMother组成ObjectMother框架。<br/>2。细节：ObjectMother实际上是test用于构造业务对象、更改业务对象的工具类，不是测试类。通过将一些常用的代码（创建和更改业务对象）组织进入ObjectMother，以达到简化测试，使测试代码以及测试数据准备代码维护性更好的目的。ObjectMother常常依赖2个方法：create方法和attach方法。前者，用于构造业务对象；后者，虽然也是帮助创建业务对象，但它还有另外的职责：识别业务对象间的关系。例如：业务对象常常会由一些其他的对象构成：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; 如果构成对象不具有明显的业务含义，就采用create方法。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8211; 反之，那么就使用attach方法。<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 有些测试常常需要在测试结束时清除测试数据，对于这种情形，可以创建一个registry方法，它用来记录每个创建的新对象。此时还需要实现一个方法，如completed，以便test可以调用通知ObjectMother测试结束可以清除数据了。（说起来容易做起来难呀。）<br/>3。代码示例：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; create方法：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static User creatNewUser{<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; User user= new User();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setName(&quot;Test User&quot;);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setAddress( createAddress()); &lt;==address不具有明显业务含义，直接在create方法中使用<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attachRoleToUser( user); &lt;==role有业务含义，使用attach方法<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; return user;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; attach方法：<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; public static void attachRoleToUser( User user){<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Role administrator= createAdministrator();<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user.setRole( administrator);<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</p>
<p>参考：</p>
<p>1。<a class="l" onmousedown="return clk(0,'res','1','')" href="http://tap.testautomationpatterns.com:8080/Object%20Mother.html" target="_blank"><font color="#cc0033">Object Mother</font><font color="#551a8b"> at XUnitPatterns.com</font></a><br/>2。<a class="l" onmousedown="return clk(0,'res','2','')" href="http://www.xpuniverse.com/2001/pdfs/Testing03.pdf" target="_blank"><font color="#0000cc">ObjectMother</font></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.donews.com/foxgem/archive/2006/03/03/751547.aspx/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
