﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-谈笑有鸿儒，往来无白丁-随笔分类-侠客岛</title><link>http://www.blogjava.net/badboyryan/category/18727.html</link><description>&lt;hr color=red&gt;
&lt;marquee  direction=left bgcolor= aaaaee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500&gt;
&lt;font color=green&gt; 在恰当的时间、地点以恰当的方式表达给恰当的人...&lt;/font&gt;&amp;nbsp;&amp;nbsp;&lt;font color=blue&gt;阅读的时候请注意分类，佛曰我日里面是谈笑文章，其他是各个分类的文章，积极的热情投入到写博的队伍中来，支持blogjava做大做强！向dudu站长致敬&gt;&gt; &gt;  （qq群侠客岛:26858781）&lt;/font&gt;
&lt;/marquee&gt; 
&lt;hr color=blue&gt;
&lt;marquee  direction=right bgcolor= aabbee behavior=scroll scrollamount=2 onmouseover="this.stop();" onmouseout="this.start();" width=500&gt;
&lt;font color=green&gt;精品推荐:&lt;/font&gt;&lt;a href="http://www.blogjava.net/badboyryan/category/13259.html"&gt;谈笑有鸿儒&lt;/a&gt;
&amp;nbsp;&amp;nbsp;&lt;font color=green&gt;&lt;a href="http://www.blogjava.net/badboyryan/category/14653.html"&gt;&lt;font color=red&gt;资源整合，门户网站&lt;/font&gt;&lt;/a&gt;&lt;/font&gt;&amp;nbsp;&amp;nbsp;
&lt;a href="http://www.blogjava.net/badboyryan/category/15148.html"&gt;JAVA名人堂&lt;/a&gt;
&lt;/marquee&gt; 
&lt;hr color=red&gt;</description><language>zh-cn</language><lastBuildDate>Fri, 27 Apr 2007 05:59:14 GMT</lastBuildDate><pubDate>Fri, 27 Apr 2007 05:59:14 GMT</pubDate><ttl>60</ttl><item><title>一次性成功编译Linux内核！</title><link>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Fri, 27 Apr 2007 04:46:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/114044.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/114044.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/114044.html</trackback:ping><description><![CDATA[
		<p>一次即大功告成 Linux内核升级全过程  <br /><br /></p>
		<p id="TBPingURL">Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1583735<br /><br /><br /><br />今天终于成功的编译了linux-2.6.18的内核，是在redhat9 2.4.20-8的内核基础上进行的！<br /><br /><br />作者：飘扬　来源：飞飞博客　发布时间：2007.04.18 <br /> <br />由于开发环境需要在linux-2.6内核上进行，于是准备对我的虚拟机上的Linux系统升级。没想到这一弄就花了两天时间（反复装系统，辛苦啊~~），总算把Linux系统从2.4.20-8内核成功升级到了2.6.18内核。 </p>
		<p>
				<br />网上虽然有很多介绍Linux内核升级的文章，不过要么过时，下载链接失效；要么表达不清，不知所云；更可气的是很多文章在转载过程中命令行都有错误。刚开始我就是在这些“攻略”的指点下来升级的，以致于浪费了很多时间。 </p>
		<p>
				<br />现在，费尽周折，升级成功，心情很爽，趁性也来写个“升级攻略”吧！于是特意又在虚拟机上重新安装一个Linux系统，再来一次完美的升级，边升级边记录这些步骤，写成一篇Linux内核升级记实录（可不是回忆录啊！），和大家一起分享~~！ </p>
		<p>
				<br />首先说明，下面带#号的行都是要输入的命令行，且本文提到的所有命令行都在终端里输入。接下来，让我们一起开始精彩的Linux内核升级之旅吧！ </p>
		<p>
				<br />一、准备工作 </p>
		<p>
				<br />启动Linux系统，并用根用户登录，进入终端模式下。 </p>
		<p>
				<br />1、查看Linux内核版本 </p>
		<p># uname -a </p>
		<p>如果屏幕显示的是2.6.x，说明你的已经是2.6的内核，也用不着看下文了，该干什么干什么去吧！~~~如果显示的是2.4.x，那恭喜你，闯关通过，赶快进行下一步。 </p>
		<p>
				<br />2、下载2.6内核源码 </p>
		<p>下载地址：<a href="http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2">http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2</a></p>
		<p>
				<br />3、下载内核升级工具 </p>
		<p>(1)下载module-init-tools-3.2.tar.bz2 </p>
		<p>
				<a href="http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2">http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-3.2.tar.bz2</a>
		</p>
		<p>(2)下载mkinitrd-4.1.18-2.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/mkinitrd-4.1.18-2.i386.rpm</a>
		</p>
		<p>(3)下载lvm2-2.00.25-1.01.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/lvm2-2.00.25-1.01.i386.rpm</a>
		</p>
		<p>(4)下载device-mapper-1.00.19-2.i386.rpm </p>
		<p>
				<a href="http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm">http://ayo.freshrpms.net/fedora/linux/3/i386/RPMS.core/device-mapper-1.00.19-2.i386.rpm</a>
		</p>
		<p>
				<br />(2.6.18内核和这4个升级工具我都有备份，如果以上下载地址失效，请留下你的邮箱，我给你发过去) <br /><a href="http://www.fly2.cn/guestbook">http://www.fly2.cn/guestbook</a><br />二、配置工作 </p>
		<p>
				<br />好啦，2.6内核和4个升级工具都下载完了(少一个也不行，如果没有下载齐全，请不要尝试下面的步骤，升级是不会成功的)，下面回到Linux系统中开始配置工作吧。 </p>
		<p>
				<br />4、将下载好的内核和4个升级工具都拷贝到/usr/src文件夹下。怎么拷贝就不用我教了吧~~~~不会拷贝的去撞墙吧！~~呵呵！ </p>
		<p>
				<br />5、拷贝完毕，开始解压新内核，具体操作请依次执行以下命令： </p>
		<p># cd /usr/src (进入到/usr/src目录下，如果已经在/usr/src目录下，可不执行该命令) </p>
		<p># rm –rf linux (删除linux文件夹。值得一提的是，如果内核先前从未编译过，则没有这个文件夹，此命令行可略过) </p>
		<p># tar jvxf linux-2.6.18.tar.bz2 (解压新内核) </p>
		<p># ln -s linux-2.6.18 linux (重新生成linux文件夹) </p>
		<p>
				<br />6、安装module-init-tools工具包 </p>
		<p>在/usr/src目录下，依次执行下列命令：（ZhiQiao：最好先看下README） </p>
		<p># tar jvxf module-init-tools-3.2.tar.bz2 (解压module-init-tools) </p>
		<p># cd module-init-tools-3.2 (由/usr/src目录进入module-init-tools目录下) </p>
		<p>#./configure --prefix=/ （--prefix=/若重新配置文件把文件放到指定的目录下）</p>
		<p># make moveold </p>
		<p># make all install </p>
		<p>#./generate-modprobe.conf /etc/modprobe.conf </p>
		<p>
				<br />7、安装另外三个升级工具 </p>
		<p>回到/usr/src目录下，依次执行下列3个命令来安装另外三个升级工具： </p>
		<p># rpm -ivh --nodeps mkinitrd-4.1.18-2.i386.rpm (注意，这里一定要加入--nodeps参数，下同) （ZhiQiao：nodeps不验证组件的关联性）</p>
		<p># rpm -ivh --nodeps lvm2-2.00.25-1.01.i386.rpm </p>
		<p># rpm -ivh --nodeps device-mapper-1.00.19-2.i386.rpm </p>
		<p>
				<br />如果不更新以上几个升级包，在后面编译内核时会提示以下错误： </p>
		<p>mkinitrd failed </p>
		<p>make[1]: *** [install] Error 1 </p>
		<p>make: *** [install] Error 2 </p>
		<p>
				<br />8、配置内核选项。有点繁琐，~~希望一次成功哦~~。 </p>
		<p># cd linux-2.6.18 (进入到/usr/src/linux-2.6.18目录下) </p>
		<p># make mrproper (该命令可确保源代码目录下没有不正确的.o文件) </p>
		<p># make menuconfig （配置内核各选项） </p>
		<p>
				<br />此时会出现一个图形界面，列出了所有的内核配置选项，有的选项下还有子选项，你可以用方向键来选择，用Y键来确定。经过我多次试验，大多数选项默认就行，以下几个选项必须选择（请认真核对下面每一个选项，否则编译很有可能前功尽弃）： </p>
		<p>
				<br />(1)Loadable Module support选项中，一定要选上“Module unloading”和“Automatic kernel module loading”这两项； </p>
		<p>(2)Device Drivers---&gt;Block Devices中一定要选上Loopback device support； </p>
		<p>Device Drivers---&gt;Multi-device support(RAID and LVM)”处要选上“device mapper support”； </p>
		<p>Device Drivers---&gt;Graphics support”, 一定要选上” Support for frame buffer devices”； </p>
		<p>Device Drivers ---&gt;;USB support ---&gt;选上”USB Mass Storage support”（如果是在实环境中，想要更多USB支持，就全选吧。我的是在虚拟机中，用不着了） </p>
		<p>Device Drivers ---&gt;; Network device support ---&gt;;Ethernet (10 or 100Mbit) ---&gt;; &lt;*&gt;; AMD PCnet32 PCI support </p>
		<p>(3) File system---&gt;（以下9个选项是关于ext2和ext3文件系统配置，全部选上） </p>
		<p>Second extended fs support </p>
		<p>Ext2 extended attributes </p>
		<p>Ext2 POSIX Access Control Lists </p>
		<p>Ext2 Security Labels </p>
		<p>Ext3 journalling file system support </p>
		<p>Ext3 extended attributes </p>
		<p>Ext3 POSIX Access Control Lists </p>
		<p>Ext3 Security Labels </p>
		<p>JBB (ext3) debugging support </p>
		<p>File system---&gt;DOS/FAT/NT Filesystems ---&gt;选上“ NTFS file system support”； </p>
		<p>File Systems --&gt; Miscellaneous filesystems ---&gt;&lt;*&gt; Compressed ROM file system support (cramfs) </p>
		<p>
				<br />注意： </p>
		<p>ext2和ext3文件系统配置很重要，也是必需的，如果对Ext3、Ext2文件的支持直接编译进内核，在你reboot时机器就会当掉，出现如下错误信息： </p>
		<p>kernel panic : no init found ,try passing init = option to kernel..... </p>
		<p>或者是： </p>
		<p>VFS:Cannot open root device "hdxy" or unknow-block(0,0) </p>
		<p>Please append a correct "root=" boot option </p>
		<p>kernel panic:VFS:Unable to mount root fs on unknown-block(0,0) </p>
		<p>或者是： </p>
		<p>mount: error 19 mounting ext3 </p>
		<p>pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed: 2 </p>
		<p>umount /initrd/proc fail: 2 </p>
		<p>Freeing unused kernel memory: 244k freed </p>
		<p>Kernel panic – not syncing: No init found. Try passing init = option to kernel </p>
		<p>（我的机器就是在重启之后出现第三种错误，进不去系统，郁闷死，只好重装了~~~） </p>
		<p>
				<br />（4）如果你在vmware下重新编译内核，硬盘用的是scsi的，以下选项必选： </p>
		<p>Device Drivers ---&gt;SCSI device support ---&gt;&lt;*&gt;SCSI disk support </p>
		<p>Device Drivers---&gt;SCSI device support---&gt;SCSI low-level drivers---&gt;;&lt;*&gt;; BusLogic SCSI support </p>
		<p>
				<br />三、编译工作 </p>
		<p>
				<br />OK，繁杂的配置工作完成了，至此，编译前的准备工作都做好了！ </p>
		<p>9、开始编译啦……： </p>
		<p>在/usr/src/linux-2.6.18目录下，执行以下命令即可编译。编译需要一段时间，给自己倒杯茶耐心等候吧！ </p>
		<p># make dep （建立编译时所需的从属文件。注意：如果内核从未编译过，此步可跳过） </p>
		<p># make clean （清除内核编译的目标文件） </p>
		<p># make bzImage （注意大小写。这一步才真正编译内核）（ZhiQiao：这步大约花了我10分钟时间，配置：512M内存，1.8G CPU） </p>
		<p>内核编译成功后，会在/usr/src/linux/arch/i386/boot目录中生成一个新内核的映像文件bzImage。如果用make zImage编译，内核很大的话，系统会提示你使用make bzImage命令来编译，所以我直接用make bzImage来编译。 </p>
		<p># make modules （编译可加载模块） （ZhiQiao：这步大约花了20分钟时间）</p>
		<p># make modules_install （安装可加载模块） </p>
		<p>安装成功后，系统会在/lib/modules目录下生成一个2.6.18子目录，里面存放着新内核的所有可加载模块。 </p>
		<p># make install （安装新内核） </p>
		<p>
				<br />注意：make install的时候可能会出现如下错误信息： </p>
		<p>No module BusLogic found for kernel 2.6。18 </p>
		<p>mkinitrd failed </p>
		<p>此问题一般只出现在SCSI硬盘＋VMWARE+REDHAT架构中，因为BusLogic被编译进了内核而不是一个module的形式（2.4内核的Buslogic模块即使静态编译进内核也不行）。解决方式是直接将可以BusLogic.o文件复制过去： </p>
		<p># cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi </p>
		<p>不过别忘记，复制过后再执行一下make install。 </p>
		<p>（如果make menuconfig时，把BusLogic模块选成M--Module模式--就不会出现这个提示。） <br /> <br />ZhiQiao：这里我是按上面所说的方法做的结果在启动时出现关于BusLogic的错误，后来我将虚拟机的硬盘换成了IDE的，成功升级！Vmware默认的硬盘是SCSI的，有很多人不知道怎么改成IDE的，具体方法可以参考四、启动新内核 </p>
		<p>10、将新内核和System.map文件拷贝到/boot目录下，依次执行以下命令： </p>
		<p># cp /usr/src/linux-2.6.18/arch/i386/boot/bzImage /boot/vmlinuz-2.6.18 </p>
		<p># cp /usr/src/linux-2.6.18/System.map /boot/System.map-2.6.18 </p>
		<p># cd /boot （进入boot目录） </p>
		<p># rm –rf System.map (删除原来的连接) </p>
		<p># ln -s System.map-2.6.18 System.map (重新建立连接) </p>
		<p>
				<br />11、修改Grub启动管理器 </p>
		<p>如果没有错误的话, 下面开始修改grub配置文件（不要告诉我你用的lilo） </p>
		<p>在/boot目录下，执行以下命令： </p>
		<p># new-kernel-pkg --mkinitrd --depmod --install 2.6.18 （这时候你的/boot下生成一个initrd-2.4.12.img，并且你的grub.conf也作了相应更改） </p>
		<p>
				<br /># df （查看根目录在那个分区，下一步要用到。注意，这里根分区不时boot的那个50M的分区，而一般是你最大的那个分区，也就是”/”，千万不要搞错哦。我的为 /dev/hda2） </p>
		<p>
				<br /># vi grub/grub.conf （ZhiQiao：此处应该为/grub/grub.conf）</p>
		<p>进入grub.conf文件，找到如下信息： </p>
		<p>default=1 </p>
		<p>timeout=10 </p>
		<p>splashimage=(hd0,0)/grub/splash.xpm.gz </p>
		<p>title Red Hat Linux (2.6.18) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.6.18 ro root= LABEL=/ </p>
		<p>initrd /initrd-2.6.18.img </p>
		<p>做两处修改： </p>
		<p>（1） 将default=1改为default=0（不改的话，重启之后默认进入2.4内核） </p>
		<p>（2） 将kernel行的“LABEL=/”换成根目录所在的分区（上一步查看的就是） </p>
		<p>此步很重要，修改错误将会可能导致进不去系统，我把我修改后的grub.conf文件列出来，不明之处，可以对照修改： </p>
		<p>default=0 </p>
		<p>timeout=10 </p>
		<p>splashimage=(hd0,0)/grub/splash.xpm.gz </p>
		<p>title Red Hat Linux (2.6.18) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.6.18 ro root=/dev/hda2 </p>
		<p>initrd /initrd-2.6.18.img </p>
		<p>title Red Hat Linux (2.4.20-8) </p>
		<p>root (hd0,0) </p>
		<p>kernel /vmlinuz-2.4.20-8 ro root=LABEL=/ </p>
		<p>initrd /initrd-2.4.20-8.img </p>
		<p>
				<br />12，OK，大功告成！赶快重启，看看升级后的2.6内核吧! <br /><br />13，下一步该做什么呢？我的qq：147863130<br /></p>
		<p>
				<br />我编译以后成功运行看看我的版本号！下图<br /><br /><img alt="redhat9上面的linux-2.6.18的内核" src="http://www.blogjava.net/images/blogjava_net/badboyryan/14948/o_rdt.bmp" align="center" /><br /> </p>
		<br />
		<br />
		<p id="TBPingURL"> </p>
<img src ="http://www.blogjava.net/badboyryan/aggbug/114044.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-04-27 12:46 <a href="http://www.blogjava.net/badboyryan/archive/2007/04/27/114044.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>NetBeans如何安装插件</title><link>http://www.blogjava.net/badboyryan/archive/2007/02/13/99718.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Tue, 13 Feb 2007 08:47:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2007/02/13/99718.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/99718.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2007/02/13/99718.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/99718.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/99718.html</trackback:ping><description><![CDATA[
		<table id="article4b6047bc010007m4" cellspacing="0" cellpadding="0" border="0">
				<tbody>
						<tr>
								<td align="middle">
								</td>
						</tr>
						<tr id="articleBody4b6047bc010007m4">
								<td class="aBody">
										<table class="description" cellspacing="0" cellpadding="0" align="center" border="0">
												<tbody>
														<tr>
																<td align="middle">
																		<div class="sysBr500 text" id="articleText4b6047bc010007m4" align="left">
																				<p>
																						<font face="Georgia" size="2">第一步：</font>
																						<font face="Georgia" size="2">
																								<br />
																								<br />Tools-&gt;Options-&gt;Advanced Options-&gt;IDE Configuration-&gt;System-&gt;Autoupdate Types<br />在上面单击右键，选择“New”-&gt;General  Update Center<br />输入插件的名字，然后确定，自动更新类型下面多出了我们刚建立的项目，单击它，<br />在服务器URL 里填入</font> 控件的网址；<span class="box"><br />close；</span></p>
																				<p>
																						<span class="box">
																								<span class="box">
																										<font face="Georgia" size="2">第二步：</font>
																								</span>
																						</span>
																				</p>
																				<p>
																						<span class="box">
																								<font face="Georgia" size="2">Tools-&gt;update center-&gt;选中添加的插件  点击下一步，选择添加，<br />自动从网上下载插件并且安装，安装完成后需要重新启动NetBeans就可以使用了。<br /><br /><br />注明出处：<br /><br /><a href="">http://www.blogjava.net/badboyryan/admin/EditPosts.aspx?catid=18727</a><br /><br /><br /></font>
																						</span>
																				</p>
																				<p>
																						<span class="box">
																						</span> </p>
																		</div>
																</td>
														</tr>
												</tbody>
										</table>
								</td>
						</tr>
				</tbody>
		</table>
<img src ="http://www.blogjava.net/badboyryan/aggbug/99718.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2007-02-13 16:47 <a href="http://www.blogjava.net/badboyryan/archive/2007/02/13/99718.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>如何学spring！</title><link>http://www.blogjava.net/badboyryan/archive/2006/12/28/90509.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Thu, 28 Dec 2006 07:59:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2006/12/28/90509.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/90509.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2006/12/28/90509.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/90509.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/90509.html</trackback:ping><description><![CDATA[         学习spring的最好的方法就是参加一个spring的项目，随着项目的进展你对spring的认识也就加深了，他的那些思想你也了解了。没有机会参与spring的项目怎么办？<br /><br />        开源项目啊Springside这个开源项目不错，还有APPFuse。   <br /><br />我买了一本《Spring in Action中文版》，有什么其它好书推荐一下啊。<br /><br />学习appfuse网站到是找到了一个：<a href="http://www.donews.net/skyhero/category/32157.aspx"><br />http://www.donews.net/skyhero/category/32157.aspx</a><br /><br />另外创建一个名叫侠客岛的群，专门的用来交流spring，还提供ftp来贡献我们学习spring的代码、经验。<br /><br />最近把移动的一个STRUTS＋HIBERNATE＋SPRING的一个项目给运行起来，所有的功能都ok！<br /><br />需要的不要忘记加入侠客岛的群啊，从我的ftp里面下载！<br /><br /><img height="19" src="http://www.blogjava.net/Emoticons/74_74.gif" width="19" border="0" /><br /><br />学习spring在行动！<br /><img src ="http://www.blogjava.net/badboyryan/aggbug/90509.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2006-12-28 15:59 <a href="http://www.blogjava.net/badboyryan/archive/2006/12/28/90509.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>让Struts2 + Spring2在Resin3.0.x下正常运行</title><link>http://www.blogjava.net/badboyryan/archive/2006/12/27/90203.html</link><dc:creator>坏男孩</dc:creator><author>坏男孩</author><pubDate>Wed, 27 Dec 2006 00:19:00 GMT</pubDate><guid>http://www.blogjava.net/badboyryan/archive/2006/12/27/90203.html</guid><wfw:comment>http://www.blogjava.net/badboyryan/comments/90203.html</wfw:comment><comments>http://www.blogjava.net/badboyryan/archive/2006/12/27/90203.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/badboyryan/comments/commentRss/90203.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/badboyryan/services/trackbacks/90203.html</trackback:ping><description><![CDATA[
		<span class="content"> 先介绍如何让Spring2.0在Resin下正常运行。
<div>参考：<a href="http://www.caucho.com/resin-3.0/xml/jaxp.xtp#xerces"><a href="http://www.caucho.com/resin-3.0/xml/jaxp.xtp#xerces" target="_blank"><font color="#000000">http://www.caucho.com/resin-3.0/xml/jaxp.xtp#xerces</font></a></a></div><div>因为Resin缺省没有用xerces解析xml，所以resin无法解析Spring2.0的配置文件。</div><div>具体做法：1. 拷贝xercesImpl.jar，xml-apis.jar，如果用到xslt，还需要拷贝xalan.jar；</div><div>2. 将下面几行加入到resin.conf中：</div><div>&lt;system-property javax.xml.parsers.DocumentBuilderFactory='org.apache.xerces.jaxp.DocumentBuilderFactoryImpl'/&gt;<br />&lt;system-property javax.xml.parsers.SAXParserFactory='org.apache.xerces.jaxp.SAXParserFactoryImpl'/&gt;<br />如果用到xslt，还要加入一行：&lt;system-property javax.xml.transform.TransformerFactory='org.apache.xalan.processor.TransformerFactoryImpl&gt;</div><div> </div><div>因为struts2的服务方式为filter方式，而Resin的mod_caucho插件正常情况下仅会对Servlet，Jsp服务，不会对Filter过滤的网址服务，这给struts2在Resin上使用带来一些问题。这可使用"Special servlet-mappings"，详细情况可以参考<a href="http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp"><a href="http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp" target="_blank"><font color="#000000">http://www.caucho.com/resin-3.0/install/plugin-dispatch.xtp</font></a></a>。</div><div>也就是说，对于一些特殊的url，可以使用plugin_match来让resin来服务，而plugin_ignore的作用正好相反。</div><div>在这里，我们需要plugin_match，为了避免打乱正常的配置，我们使用和web.xml文件相同作用的resin-web.xml来设置相应的url，这样设置仅对resin有效，不影响其他server，还是不错的。</div><div>最后的resin-web.xml是这样的：</div><div>&lt;web-app xmlns="<a href="http://caucho.com/ns/resin"><a href="http://caucho.com/ns/resin" target="_blank"><font color="#000000">http://caucho.com/ns/resin</font></a></a>"&gt; <br /> &lt;servlet-mapping url-pattern='/struts/*' servlet-name='plugin_match'/&gt;<br /> &lt;servlet-mapping url-pattern='/other/*' servlet-name='plugin_match'/&gt; <br /> &lt;servlet-mapping url-pattern='*.action' servlet-name='plugin_match'/&gt;<br /> &lt;servlet-mapping url-pattern='*.html' servlet-name='plugin_match'/&gt;<br /> &lt;servlet-mapping url-pattern='*.do' servlet-name='plugin_match'/&gt;<br /> &lt;servlet-mapping url-pattern='/dwr/*' servlet-name='plugin_match'/&gt;              <br />&lt;/web-app&gt;</div><div>这样struts2的action就可以正常工作了。</div><div> </div><div>另外，如果url后面自动跟上jsessionid的话，resin会反应404找不到网页的错误。在host里配置里加上&lt;session-config enable-cookies='true' enable-url-rewriting='false'/&gt;可避免些问题。<br />摘自：<br /><a href="http://mtiger2k.blog.51cto.com">http://mtiger2k.blog.51cto.com</a></div></span>
<img src ="http://www.blogjava.net/badboyryan/aggbug/90203.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/badboyryan/" target="_blank">坏男孩</a> 2006-12-27 08:19 <a href="http://www.blogjava.net/badboyryan/archive/2006/12/27/90203.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>