﻿<?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-哈哈,吼吼,这是个好地方-随笔分类-java</title><link>http://www.blogjava.net/tufanshu/category/4974.html</link><description>没有风雨躲的过，
没有坎坷不必走……
</description><language>zh-cn</language><lastBuildDate>Tue, 25 Dec 2007 03:37:14 GMT</lastBuildDate><pubDate>Tue, 25 Dec 2007 03:37:14 GMT</pubDate><ttl>60</ttl><item><title>apache2.2.6+tomcat5.5.17配置说明</title><link>http://www.blogjava.net/tufanshu/archive/2007/12/24/170126.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Mon, 24 Dec 2007 10:03:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2007/12/24/170126.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/170126.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2007/12/24/170126.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/170126.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/170126.html</trackback:ping><description><![CDATA[<span style="font-size: 10pt;"><span style="font-size: 10pt;"><span style="font-family: Verdana;">同样，经过不断的摸索和网友的帮助，终于搞定了：），主要的问题还是出在我的服务器上的原因，不知道为什么，我的服务器上部署了sqlite3.0导致apache2.2.6始终无法运行，总是提示找不到"libsqlite3.so.0",不得以，只能换台服务器测试，轻松搞定，现将过程描述如下，一共参考：<br />
一.安装apache2.2.6<br />
&nbsp;&nbsp;&nbsp; 1.&nbsp;&nbsp;&nbsp; tar fvxz httpd-2.2.2.tar.gz<br />
&nbsp;&nbsp;&nbsp; 2.&nbsp;&nbsp;&nbsp; 进入解压后的目录。进行配置：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ./configure --prefix=/usr/apache --enable-module=so --enable-proxy --enable-proxy-ajp --enable-forward &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; --enable-proxy-connect --enable-proxy-http --enable-so --enable-deflate --enable-headers --enable-include<br />
&nbsp;&nbsp;&nbsp; 解释：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -- prefix=/usr/apache是配置将要安装到的目录位置；<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --enable-module=so配置Apache支持Dynamic Shared Objects (DSO)模式;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --enable-* 配置添加相应的模块;<br />
&nbsp;&nbsp;&nbsp; 3.&nbsp;&nbsp;&nbsp; 编译（编译如果不成功，确认一下你的linux是否安装有编译所需要的c环境和其他需要的类库）：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make<br />
&nbsp;&nbsp;&nbsp; 4.&nbsp;&nbsp;&nbsp; 安装：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; make install<br />
&nbsp;&nbsp;&nbsp; 5.&nbsp;&nbsp;&nbsp; 编辑/usr/apache/conf/httpd.conf文件，把端口改为80（别跟tomcat的端口冲突）：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ServerName:80<br />
二、安装tomcat5.5.17<br />
&nbsp;&nbsp;&nbsp; 直接解压压缩包到指定目录就可以，再次就不多少说了（当然，最好在进行以上两项操作前先按装好jdk，1.5或以上版本）<br />
三、简单的apche2.2.6+tomcat5.5.17配置说明：<br />
&nbsp;&nbsp;&nbsp; 使用</span></span>使用proxy_ajp整合apache和tomcat，由于Apache2.2对以往版本有较大改动,引进了proxy
模块,所以Apache2.2和Tomcat5.5的配置需要用到mod_proxy.so等文件(不再使用jk 或 jk2 等tomcat连接器)
.基本配置如下:<br />
(一)加载解析模块<br />
&nbsp;&nbsp;&nbsp;
windows下，或linux采用动态加载(DSO)模式下需配置。前面我们的linux编译时把下面的模块嵌入到了&nbsp;&nbsp;&nbsp; apache中，所以不用再加载，因此下面的两行也不用再httpd.conf文件中添加了<br />
&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp; LoadModule proxy_module modules/mod_proxy.so<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; LoadModule proxy_ajp_module
modules/mod_proxy_ajp.so<br />
(二)使用proxy_ajp代理, 下面的配置，是把所有目录全用代理<br />
&nbsp;&nbsp; &nbsp; 使用vi编辑器打开apache的配置文件/conf/httpd.conf,在#LoadModule&#215;&#215;&#215;&#215;&#215;&#215;行的后面添加&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 以下两行即可：<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; ProxyPass / ajp://127.0.0.1:8009/<br />
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; ProxyPassReverse /
ajp://127.0.0.1:8009/<br />
(三)禁止使用proxy_ajp代理的目录：<br />
&nbsp;&nbsp;&nbsp;&nbsp;
如果对于某些目录不想使用proxy_ajp代理转发，可以按照如下配置（配置方式同上面（二）的操&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp; 作）：<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ProxyPass /images/ !&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
（禁止images目录下的内容使用proxy_ajp代理转发）<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
配置到现在，重启一下apache，就可通过apache来访问tomcat的服务了。<br />
<br />
特别鸣谢：http://groups.csdn.net/Apache/topic/b70ad273-f66f-4699-83c0-e11d354d262a.aspx<br />
<br />
</span>
<img src ="http://www.blogjava.net/tufanshu/aggbug/170126.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2007-12-24 18:03 <a href="http://www.blogjava.net/tufanshu/archive/2007/12/24/170126.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>找不到C.TLD的问题</title><link>http://www.blogjava.net/tufanshu/archive/2006/12/04/85371.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Mon, 04 Dec 2006 07:27:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2006/12/04/85371.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/85371.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2006/12/04/85371.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/85371.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/85371.html</trackback:ping><description><![CDATA[在部署roller3.0的源代码的时候，每次启动tomcat后访问首页的时候就报错，提示找不到c.tld,但是standard.jar和jstl.jar都以放到lib目录下了，郁闷之极，最后发现是因为在lib下放了一个jsp-api.jar的包导致的<br />，只要将该包从lib下移除即可了，在此感谢网络上不吝赐教的朋友们：）<img src ="http://www.blogjava.net/tufanshu/aggbug/85371.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2006-12-04 15:27 <a href="http://www.blogjava.net/tufanshu/archive/2006/12/04/85371.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>roller2.3源代码部署笔录</title><link>http://www.blogjava.net/tufanshu/archive/2006/11/01/78479.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Wed, 01 Nov 2006 07:28:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2006/11/01/78479.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/78479.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2006/11/01/78479.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/78479.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/78479.html</trackback:ping><description><![CDATA[
		<p>1.首先是去下载rller2.3的源代码文件，下载地址：<a href="http://rollerweblogger.org/">http://rollerweblogger.org/</a><br />由于roller采用了xdoclet，所以在下载的源代码中有些内容是没有的，主要缺少的内容如下：<br />   (1)package org.roller.presentation.forms<br />   (2)src下缺少相关的<font face="Times New Roman, serif">hbm</font>文件<br />   (3)<font face="Times New Roman, serif">version.properties</font><br />   (4)roller.tld<br />2.由于缺少以上的东西，导致源代码导入工程后，编译都不能通过。我不是太懂xdoclet的使用，所以只好缺什么，就给他什么了，尽量满足他的要求了。在roller-src（roller2.3解压后的文件）下有ant的脚本，所以我猜想，通过脚本，一定可以生成所有缺少的文件，事实也确实如此，只是在使用ant脚本生成roller web的过程也是坎坷的：），主要是应为roller开发小组为了省事，把一些开源的第三方包给去掉了，所以需要自己给补上。不然就会生成不成功。现记录如下：<br />(1)加上hibernate3.2.1.jar<br />      在/roller/src/tools目录下建立/hibernate-3.1/lib文件夹，将hibernate3.jar文件copy到该目录下面<br />(2)加上j2ee.jar<br />    将j2ee.jar(或jboss-j2ee.jar)copy到/roller-src/tools/buildtime/xdoclet-1.2.3/文件夹下<br />(3)添加javamail的相关包：mail.jar,actiivation.jar<br />   将mail.jar,activation.jar copy到/roller-src/tools/lib目录下面。<br />然后在windows下进入roller-src目录，使用下面命令即可生成roller web,同时可以生成以上缺省的文件：<br /><br />&gt; build all<br />然后就可以在roller-src/build目录寻找你需要的文件，同时也有发布好的roller web了<br /><br /><br />roller2.3的安装发布可以参考roller官方发布的安装文档即可。<br /><br />大功告成，可以开始学习和修改roller2.3的源码了！：）</p>
<img src ="http://www.blogjava.net/tufanshu/aggbug/78479.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2006-11-01 15:28 <a href="http://www.blogjava.net/tufanshu/archive/2006/11/01/78479.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>tomcat 服务器抛出socket异常“文件打开太多”的问题</title><link>http://www.blogjava.net/tufanshu/archive/2006/07/31/60981.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Mon, 31 Jul 2006 03:39:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2006/07/31/60981.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/60981.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2006/07/31/60981.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/60981.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/60981.html</trackback:ping><description><![CDATA[最近，运行的tomcat服务器在正常运行将近2个月后，抛出如下错误：<br /><br />警告: Reinitializing ServerSocket<br />2006-7-28 15:07:40 org.apache.tomcat.util.net.PoolTcpEndpoint acceptSocket<br />严重: Endpoint ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=80] ignored exception: java.net.SocketException: Too many open files<br />java.net.SocketException: Too many open files<br /> at java.net.PlainSocketImpl.socketAccept(Native Method)<br /> at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:384)<br /> at java.net.ServerSocket.implAccept(ServerSocket.java:450)<br /> at java.net.ServerSocket.accept(ServerSocket.java:421)<br /> at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:60)<br /> at org.apache.tomcat.util.net.PoolTcpEndpoint.acceptSocket(PoolTcpEndpoint.java:407)<br /> at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:70)<br /> at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)<br /> at java.lang.Thread.run(Thread.java:595)<br /><br />原本以为是tomcat的配置或是应用本身的问题，"谷歌"一把后才发现，该问题的根本原因是由于系统文件资源的限制导致的。具体可以参考<a href="http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html">http://www.bea.com.cn/support_pattern/Too_Many_Open_Files_Pattern.html</a><br />的说明。具体的解决方式可以参考一下：<br />1。ulimit -a 查看系统目前资源限制的设定。<br />   [root@test security]# umlimit -a <br />-bash: umlimit: command not found<br />[root@test security]# ulimit -a<br />core file size        (blocks, -c) 0<br />data seg size         (kbytes, -d) unlimited<br />file size             (blocks, -f) unlimited<br />max locked memory     (kbytes, -l) unlimited<br />max memory size       (kbytes, -m) unlimited<br /><font color="#ff3300">open files                    (-n) 1024<br /></font>pipe size          (512 bytes, -p) 8<br />stack size            (kbytes, -s) 8192<br />cpu time             (seconds, -t) unlimited<br />max user processes            (-u) 7168<br />virtual memory        (kbytes, -v) unlimited<br />[root@test security]# <br />通过以上命令，我们可以看到open files 的最大数为1024<br />那么我们可以通过一下命令修改该参数的最大值<br />2. ulimit -n 4096<br />[root@test security]# ulimit -n 4096<br />[root@test security]# ulimit -a<br />core file size        (blocks, -c) 0<br />data seg size         (kbytes, -d) unlimited<br />file size             (blocks, -f) unlimited<br />max locked memory     (kbytes, -l) unlimited<br />max memory size       (kbytes, -m) unlimited<br /><font color="#ff3300">open files                    (-n) 4096<br /></font>pipe size          (512 bytes, -p) 8<br />stack size            (kbytes, -s) 8192<br />cpu time             (seconds, -t) unlimited<br />max user processes            (-u) 7168<br />virtual memory        (kbytes, -v) unlimited<br /><br />这样我们就修改了系统在同一时间打开文件资源的最大数，基本解决以上问题。<br /><br />另外我们可以通过lsof  -p [进程的 pid]来查看系统当前打开的文件资源，可以了解不同时期系统的文件资源的使用情况，可根据情况进行系统资源的配置。<br /><img src ="http://www.blogjava.net/tufanshu/aggbug/60981.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2006-07-31 11:39 <a href="http://www.blogjava.net/tufanshu/archive/2006/07/31/60981.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>hsql的使用</title><link>http://www.blogjava.net/tufanshu/archive/2005/12/26/25499.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Mon, 26 Dec 2005 13:44:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2005/12/26/25499.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/25499.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2005/12/26/25499.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/25499.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/25499.html</trackback:ping><description><![CDATA[<P>最近在一个充值平台上使用了HSQL来记录用户的充值记录,本来所有的记录是写到文件里面的,但是由于使用ORACLE的惯性思维导致我浪费了半天的时间.具体情况是这样:<BR>我使用的是HSQL的IN-PROCESS(Standalone)模式,这样在WEB启动的时候,我就会去创建数据库,按照HSQL的文档,如果存在&lt;dbname&gt;.script文件的话,数据库就会将历史数据插入到数据库中,但是在这里我放了一个惯性的错误,我们在ORCALE或是其他的常用数据库中创建表时,一般要先删除就表,让后在创建新的表,这样我就把HSQL的历史记录都删除了,郁闷啊,这可是用户的充值记录啊,以后我怎么对帐啊,:)还好我有备份.<BR>在HSQL更本不需要这样的操作,他自己会去做这样的事情:如果&lt;dbname&gt;.script存在,他就直接执行了这个script,如果没有他才回去创建新的数据库和表结构.</P><img src ="http://www.blogjava.net/tufanshu/aggbug/25499.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2005-12-26 21:44 <a href="http://www.blogjava.net/tufanshu/archive/2005/12/26/25499.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>jdk1.4升级到JDK1.5的问题</title><link>http://www.blogjava.net/tufanshu/archive/2005/11/17/20309.html</link><dc:creator>雪地孤鸿</dc:creator><author>雪地孤鸿</author><pubDate>Thu, 17 Nov 2005 12:28:00 GMT</pubDate><guid>http://www.blogjava.net/tufanshu/archive/2005/11/17/20309.html</guid><wfw:comment>http://www.blogjava.net/tufanshu/comments/20309.html</wfw:comment><comments>http://www.blogjava.net/tufanshu/archive/2005/11/17/20309.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.blogjava.net/tufanshu/comments/commentRss/20309.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/tufanshu/services/trackbacks/20309.html</trackback:ping><description><![CDATA[<P>最近将手上的项目(tomcat5.0+spring+struts)的jdk1.4升级到1.5的时候,出现了一堆的问题,经过不懈的努力和网上朋友的提示终于将问题解决了,现在记录如下<BR>1.java.lang.UnsupportedClassVersionError: com/mdcchina/userinfo/logic/UserManager (Unsupported major.minor version 49.0)提示如上的错误,很是郁闷<BR>经过研究和比较在两个不同环境下的编译运行,终于发现这个主要是由于我的机子上安装了两个不同版本的JDK导致的,我想很多的朋友在尝试新的JDK的时候,可能不会删除1.4的版本,但是要注意的是要将JAVA_HOME,CLASS_PATH,PATH等等的环境变量都修改成相关的JDK1.5的目录下面去,因为1.5相对于以前的版本的变化比较大.<BR>2.上面的问题排除后,在运行TOMCAT5.0时候由出现了如下的错误:<BR>2005-11-17 19:38:47 StandardWrapperValve[action]: Servlet.service() for servlet action threw exception<BR>org.apache.jasper.JasperException: Unable to compile class for JSP</P>
<P>Generated servlet error:<BR>C:\application\Tomcat 5.0\work\Catalina\localhost\mlinkweb\org\apache\jsp\layouts\layout_005findex_jsp.java:7: cannot access java.lang.Object</P>
<P><BR>Generated servlet error:<BR>bad class file: C:\application\Java\jdk1.5.0\jre\lib\rt.jar(java/lang/Object.class)<BR>class file has wrong version 49.0, should be 48.0<BR>Please remove or make sure it appears in the correct subdirectory of the classpath.<BR>public final class layout_005findex_jsp extends org.apache.jasper.runtime.HttpJspBase<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^<BR>1 error<BR><BR>这个问题这是让我郁闷之极啊(^_^)<BR>最后在SUN的JAVA论坛里面找到了答案,只要将JDK1.5的LIB下面的TOOLS.JAR覆盖TOMCAT5.0目录/common/lib下面的tools.jar,然后重启TOMCAT5.0就可以了</P><img src ="http://www.blogjava.net/tufanshu/aggbug/20309.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/tufanshu/" target="_blank">雪地孤鸿</a> 2005-11-17 20:28 <a href="http://www.blogjava.net/tufanshu/archive/2005/11/17/20309.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>