亚洲中文无码线在线观看,亚洲人成在线播放,在线观看亚洲av每日更新http://blogjava.net/youngturk/category/51648.htmlThe world is a fine place , and worth fighting for it.zh-cnMon, 08 Jul 2013 07:54:26 GMTMon, 08 Jul 2013 07:54:26 GMT60Tomcat部署Web應(yīng)用方法總結(jié) .http://www.tkk7.com/youngturk/archive/2013/07/07/401284.htmlyoungturkyoungturkSun, 07 Jul 2013 03:45:00 GMThttp://www.tkk7.com/youngturk/archive/2013/07/07/401284.htmlhttp://www.tkk7.com/youngturk/comments/401284.htmlhttp://www.tkk7.com/youngturk/archive/2013/07/07/401284.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/401284.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/401284.htmlTomcat部署Web應(yīng)用方法總結(jié)
在Tomcat中部署Java Web應(yīng)用程序有兩種方式:靜態(tài)部署和動(dòng)態(tài)部署。

在下文中$CATALINA_HOME指的是Tomcat根目錄。

一、靜態(tài)部署 


靜態(tài)部署指的是我們?cè)诜?wù)器啟動(dòng)之前部署我們的程序,只有當(dāng)服務(wù)器啟動(dòng)之后,我們的Web應(yīng)用程序才能訪問(wèn)。

以下3種方式都可以部署:(以PetWeb項(xiàng)目為例說(shuō)明,PetWeb目錄假設(shè)是F:
/PetWeb)

1.利用Tomcat自動(dòng)部署 


將PetWeb目錄拷貝到$CATALINA_HOME
/webapps下,然后啟動(dòng)服務(wù)器就可以了,Tomcat啟動(dòng)時(shí)將自動(dòng)加載應(yīng)用。

訪問(wèn)地址如下:http:
//localhost:8080/PetWeb/ 

這種方式比較簡(jiǎn)單,但是web應(yīng)用程序必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat默認(rèn)的應(yīng)用目錄,當(dāng)服務(wù)器啟動(dòng)時(shí),會(huì)加載所有這個(gè)目錄下的應(yīng)用。

2.修改Server.xml文件部署 


這種方式可以不必將PetWeb目錄拷貝到webapps下,直接在F:
/部署。方法如下,更改$CATALINA_HOME/conf/server.xml文件,

找到以下內(nèi)容:

Xml代碼:

1.<Context  path ="/Pet"  reloadable ="false"  docBase ="F:/PetWeb"  workDir ="d:/Mywebapps/emp"  /> 
path:是訪問(wèn)時(shí)的根地址,表示訪問(wèn)的路徑;如上述例子中,訪問(wèn)該應(yīng)用程序地址如下:http:
//localhost:8080/Pet/ 

reloadable:表示可以在運(yùn)行時(shí)在classes與lib文件夾下自動(dòng)加載類包。其中reloadable
="false"表示當(dāng)應(yīng)用程序中的內(nèi)容發(fā)生更改之后服務(wù)器不會(huì)自動(dòng)加載,這個(gè)屬性在開(kāi)發(fā)階段通常都設(shè)為true,方便開(kāi)發(fā),在發(fā)布階段應(yīng)該設(shè)置為false,提高應(yīng)用程序的訪問(wèn)速度。

docbase:表示應(yīng)用程序的路徑,注意斜杠的方向“
/”。 docBase可以使用絕對(duì)路徑,也可以使用相對(duì)路徑,相對(duì)路徑相對(duì)于webapps。

workdir:表示緩存文件的放置地址

3.增加自定義web部署文件(推薦使用,不需要重啟Tomcat ) 


這種方式和方法2差不多,但不是在Server.xml文件中添加Context標(biāo)簽,而是在$CATALINA_HOME
/conf /Catalina/localhost中添加一個(gè)xml文件,如Pet.xml.在Tomcat安裝目錄conf/Catalina /localhost下,里面有Tomcat自帶的三個(gè)應(yīng)用,隨意復(fù)制其中的一個(gè)XML文件,然后修改docbase指向你自己的應(yīng)用程序,并把文件名改名,各參數(shù)參見(jiàn)方法2中的<Context>標(biāo)簽的參數(shù),或者你也可以自己新建一個(gè)XML文件。(注意此文件名將作為Context中的path屬性值,不管文件里的path屬性值如何設(shè)置也是無(wú)效的 ),將以下內(nèi)容復(fù)制過(guò)去,修改相應(yīng)路徑即可。

Xml代碼:

1.<Context  path ="/Pet"  docBase ="F:/PetWeb"   
2.        debug ="0"  privileged ="true"  reloadable ="false"  >   
3.</Context> 
訪問(wèn)地址如下:http:
//localhost:8080/Pet/   

 

 

注: Web應(yīng)用以.war文件的形式部署 



可以將JSP程序打包成一個(gè)war包放在目錄下,服務(wù)器會(huì)自動(dòng)解開(kāi)這個(gè)war包,并在這個(gè)目錄下生成一個(gè)同名的文件夾。一個(gè)war包就是有特性格式的jar包,它是將一個(gè)Web程序的所有內(nèi)容進(jìn)行壓縮得到。

我們剛才是將PetWeb文件夾部署在了服務(wù)器中,我們知道可以將Web應(yīng)用程序的內(nèi)容打成.war 包,然后在部署在服務(wù)器上。打包請(qǐng)參考如下步驟: 
    
1、打開(kāi)命令提示符(cmd) 
    
2、設(shè)置jdk環(huán)境變量  
    
3、在命令提示符中進(jìn)入項(xiàng)目文件夾F:/PetWeb后,鍵入如下命令:jar cvf Pet.war */ .   (注意最后有個(gè)“. ”)。這樣在F:/PetWeb下應(yīng)該有Pet.war文件。 (也可以打包到指定的地方,命令如下:jar cvf d:/Pet.war */ . )

部署Pet.war文件非常簡(jiǎn)單,將剛才xml文件中的docBase 
="F:/PetWeb" 更改為docBase ="F:/Pet.war" 或者直接將其拷貝到webapps目錄下就可以。然后重新啟動(dòng)服務(wù)器就可以將Pet.war部署為一個(gè)Web應(yīng)用程序了。

如果你夠細(xì)心的話你會(huì)發(fā)現(xiàn),服務(wù)器將Pet.war文件解開(kāi),并且在webapps下面又生成了一個(gè)Pet文件夾,然后把Pet.war的內(nèi)容拷貝到里面去了。我們可以通過(guò)以下方式取消自動(dòng)解壓縮,將xml配置文件中的unpackWAR 屬性設(shè)置為
"false" 即可。

 

 

二、動(dòng)態(tài)部署 


動(dòng)態(tài)部署是指可以在服務(wù)器啟動(dòng)之后部署web應(yīng)用程序,而不用重新啟動(dòng)服務(wù)器。動(dòng)態(tài)部署要用到服務(wù)器提供的manager.war文件,如果在$CATALINA_HOME
/webapps/下沒(méi)有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編輯$CATALINA_HOME/conf/tomcat-users.xml文件,內(nèi)容如下:(關(guān)于這個(gè)文件的更多內(nèi)容,請(qǐng)參考 Java Web應(yīng)用程序的安全模型二 )

<tomcat-users> 
<role rolename="tomcat"/> 
<role rolename="role1"/> 
<role rolename="manager"/> 
<user username="coresun" password="coresun" roles="manager"/> 
<user username="tomcat" password="tomcat" roles="tomcat"/> 
<user username="both" password="tomcat" roles="tomcat,role1"/> 
<user username="role1" password="tomcat" roles="role1"/> 
</tomcat-users> 


youngturk 2013-07-07 11:45 發(fā)表評(píng)論
]]>
web頁(yè)面檢索數(shù)據(jù)庫(kù)中的字段是亂碼問(wèn)題http://www.tkk7.com/youngturk/archive/2013/05/03/398720.htmlyoungturkyoungturkFri, 03 May 2013 02:33:00 GMThttp://www.tkk7.com/youngturk/archive/2013/05/03/398720.htmlhttp://www.tkk7.com/youngturk/comments/398720.htmlhttp://www.tkk7.com/youngturk/archive/2013/05/03/398720.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/398720.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/398720.html//  this.databaseEncoding = "ISO8859-1";
  this.platformEncoding = "GBK";

獲得數(shù)據(jù)庫(kù)字符時(shí)候需要轉(zhuǎn)換

youngturk 2013-05-03 10:33 發(fā)表評(píng)論
]]>
web應(yīng)用從tomat向weblogic8中遷移遇到的三個(gè)問(wèn)題http://www.tkk7.com/youngturk/archive/2013/01/09/394000.htmlyoungturkyoungturkWed, 09 Jan 2013 01:00:00 GMThttp://www.tkk7.com/youngturk/archive/2013/01/09/394000.htmlhttp://www.tkk7.com/youngturk/comments/394000.htmlhttp://www.tkk7.com/youngturk/archive/2013/01/09/394000.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/394000.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/394000.html一、系統(tǒng)環(huán)境

1、web應(yīng)用在tomcat上運(yùn)行,一切正常。

2、OS:windows XP sp3

3、weblogic version:8.1.3.0

二 、問(wèn)題及解決方法

1 、 weblogic.utils.ParsingException: nested TokenStreamException: antlr.TokenStreamIOException: 在web應(yīng)用的WEB-INF目錄下新增(如果沒(méi)有)weblogic.xml文件,寫(xiě)入下面內(nèi)容:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" 
                  "http://www.bea.com/servers/wls810/dtd/weblogic810-web-jar.dtd"> 
<weblogic-web-app> 
  <session-descriptor> 
  </session-descriptor> 

  <jsp-descriptor> 
    <jsp-param> 
      <param-name>encoding</param-name> 
      <param-value>UTF-8</param-value> 
    </jsp-param> 
    <jsp-param> 
      <param-name>pageCheckSeconds</param-name> 
      <param-value>-1</param-value> 
    </jsp-param> 
<jsp-param> 
   <param-name>compilerSupportsEncoding</param-name> 
      <param-value>true</param-value> 
    </jsp-param> 
    <jsp-param> 
      <param-name>verbose</param-name> 
      <param-value>false</param-value> 
    </jsp-param> 
  </jsp-descriptor> 
<charset-params>  
    <input-charset>  
       <resource-path>/*</resource-path>  
       <java-charset-name>UTF-8</java-charset-name>  
     </input-charset>  
   </charset-params> 
</weblogic-web-app> 

  保存,重新deploy應(yīng)用 

2、 sun.io.MalformedInputException:修改區(qū)域和語(yǔ)言選型。

控制面板->區(qū)域和語(yǔ)言選型->高級(jí)->代碼頁(yè)轉(zhuǎn)換表,去掉54936(GB18030簡(jiǎn)體中文)前面的對(duì)勾,保存更改。重新deploy應(yīng)用。

3 、weblogic.servlet.jsp.JspException: (line 1): page directive contentType at /unieap/ria3.3/pages/config.jsp:1 previously defined :修改jsp文件,不能重復(fù)定義:<%@ page contentType="text/html; charset=UTF-8"%>

      在含有<%@ include file="/unieap/ria3.3/pages/config.jsp"%>這樣的代碼的JSP文件中,如果在文件頭部已經(jīng)定義了contentType,那么在被包含的文件中如果重復(fù)定義contentType,盡管相同,weblogoic也會(huì)報(bào)錯(cuò),只能改JSP文件,保證一個(gè)頁(yè)面中只有一個(gè)contentType的定義。這個(gè)問(wèn)題在tomcat中是不存在的,可能是兩個(gè)應(yīng)用服務(wù)器的解析機(jī)制不同。



youngturk 2013-01-09 09:00 發(fā)表評(píng)論
]]>
eclipse 使用tomcat需要首先安裝其插件,然后下載服務(wù)器,最后部署, Eclipse Tomcat插件的配置, 及 Tomcat 的配置http://www.tkk7.com/youngturk/archive/2012/11/22/391787.htmlyoungturkyoungturkThu, 22 Nov 2012 13:43:00 GMThttp://www.tkk7.com/youngturk/archive/2012/11/22/391787.htmlhttp://www.tkk7.com/youngturk/comments/391787.htmlhttp://www.tkk7.com/youngturk/archive/2012/11/22/391787.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/391787.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/391787.html

首先下載 對(duì)應(yīng) eclipse 版本的 tomcat 插件版本,(這里要注意: Tomcat 插件是Tomcat 插件,Tomcat 是 Tomcat, 兩者不能混淆!)

下載地址:http://www.eclipsetotale.com/tomcatPlugin.html

然后將得到的壓縮包解壓,放入 eclipse 的 plugins 目錄中重啟 eclipse, Tomcat 插件安裝成功!

當(dāng)然安裝成功不并代表能使用,這里還要配置 Tomcat, 才能正常使用 Tomcat 插件,

配置過(guò)程:

首先下載當(dāng)前 Eclipse 能使用的 Tomcat 版本,

下載地址:http://tomcat.apache.org/ 

然后解壓到指定的目錄,然后配置

Eclipse - toolsbar  ->  Window  ->  Prefences  ->  Tomcat  -> 指向剛才 Tomcat 解壓的目錄,

到此配置完成,使用 Tomcat 插件可以啟動(dòng)、關(guān)閉 Tomcat.

使用 Eclipse 建立 Dynamic Web Project 如:HelloProject

右鍵 Run As –>  Run On Server  ->  如圖:

HelloProject

彈出如圖界面配置:

HelloProject.ConfigSever

配置完成,會(huì)在看到這樣效果項(xiàng)目目錄下會(huì)有 Servers 一個(gè)目錄,是專屬 HelloProject 項(xiàng)目的 Tomcat 配置,

還會(huì)在控制臺(tái)那塊看到 Servers 如圖:

finish

這時(shí)已經(jīng)可以使用 Tomcat , Start、Stop、Restart 等.

重點(diǎn)要說(shuō)的,也是下邊要講的是:

對(duì)于上圖紅圈中的 server.xml 和 Tomcat/conf/server.xml  文件,

我們說(shuō)過(guò)了紅圈中的 server.xml 是針對(duì) HelloProject 生成的配置文件,當(dāng)然多個(gè)項(xiàng)目也可以共用 一個(gè) Servers 目錄下的配置!這個(gè)暫時(shí)先不講。

而 Tomcat/conf/server.xml  是 Tomcat 本身所有,有更大的通用性。

為了便于區(qū)分我們把紅圈中的 server.xml 叫 project.server.xml, 把 Tomcat/conf/server.xml 叫 tomcat.server.xml。

本次主要講 server.xml 中的 <Context … />

來(lái)看 project.server.xml 中的  <Context docBase="HelloProject" path="/HelloProject" reloadable="true" source="org.eclipse.jst.jee.server:HelloProject"/>

docBase 指的是 相對(duì) Servers 目錄 平級(jí)的 HelloProject 目錄 即項(xiàng)目目錄,如圖:

dir 

path 指的是 網(wǎng)站訪問(wèn)路徑,如:http://locahost:8080/HelloProject

像這樣生成的這個(gè) project.server.xml 我們一般不要?jiǎng)?

而對(duì)于 tomcat.server.xml 中 <Content … />

我們看這兩配置都是對(duì)的:

<!--<Context path="/HP" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject\WebContent" workDir=”D:\worDir” /> -->
      <Context path="/HelloProject" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" workDir=”C:\workDir” />

   <Context path="/HPT" reloadable="true" docBase="C:\Documents and Settings\Administrator\workspace\HelloProject" workDir=”C:\workDir” />

網(wǎng)站訪問(wèn)路徑分別是

http://localhost:8080/HP

http://localhost:8080/HelloProject

對(duì)于上邊的 HPT 我們可以這樣訪問(wèn):

http://localhost:8080/HPT/WebContent

這樣可以看到 如果是 docBase 指到了 WebContent 下則可用自己定義的 path,

如果 docBase 指到的是項(xiàng)目目錄則必須使用項(xiàng)目原來(lái)的 path, 或者路徑訪問(wèn)做下修改

最后的 workDir 是部署后 jsp 發(fā)布的目錄,可以自己隨便指定,或不指定.



youngturk 2012-11-22 21:43 發(fā)表評(píng)論
]]>
js讀取XML文件 JS讀寫(xiě)XML文件http://www.tkk7.com/youngturk/archive/2012/11/09/391095.htmlyoungturkyoungturkFri, 09 Nov 2012 07:21:00 GMThttp://www.tkk7.com/youngturk/archive/2012/11/09/391095.htmlhttp://www.tkk7.com/youngturk/comments/391095.htmlhttp://www.tkk7.com/youngturk/archive/2012/11/09/391095.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/391095.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/391095.htmlJavaScript

<script type="text/javascript">
    //<![CDATA[
    //嵌入CDATA段可以防止不兼容Javacript的瀏覽器不產(chǎn)生錯(cuò)誤信息
    //增加正則表達(dá)式 
    String.prototype.getQueryString = function(name) {
        var reg = new RegExp("(^|&|\\?)" + name + "=([^&]*)(&|$)"), r;
        if (r = this.match(reg)) return unescape(r[2]);
        return null;
    };
    var address = location.search.getQueryString("address"); //通過(guò)表達(dá)式獲得傳遞參數(shù)
    //針對(duì)兩種瀏覽器,分別獲取xmlDocument對(duì)象// 讀取XML文件   
    function loadXML(xmlFile) {
        var xmlDoc;
        if (window.ActiveXObject) {
            xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        }
        else if (document.implementation && document.implementation.createDocument) {
            xmlDoc = document.implementation.createDocument("", "", null);
            xmlDoc.async = false;
            xmlDoc.load(xmlFile);
        } else {
            alert('您的瀏覽器不支持該系統(tǒng)腳本!');
        }
        return xmlDoc;
    }   
    //調(diào)用地圖
    var map; //全局GMap GOOGLE 地圖 API
    function load() {
        if (GBrowserIsCompatible()) //檢查瀏覽器兼容性
        {
            map = new GMap2(document.getElementById("map")); //地圖加栽到ID為map的DIV中。
            map.addControl(new GSmallMapControl());   //添加Gcontrol控件//放大縮小的那個(gè)
            map.setCenter(new GLatLng(26.577014, 104.877977), 15); //設(shè)置地圖中心
            //創(chuàng)建多個(gè)坐標(biāo)點(diǎn)(從INFO.XML文件中讀取)
            var xmlDoc = loadXML("Info.xml"); 
            var members = xmlDoc.getElementsByTagName("number");
            var maxRes = members.length;
            for (var i = 0; i <= maxRes; i++) {                       //XML中記錄了多個(gè)坐標(biāo)點(diǎn),要每個(gè)點(diǎn)都標(biāo)記一下
                var oName = members[i].getElementsByTagName("name");
                var oLongitude = members[i].getElementsByTagName("Longitude");
                var oLatitude = members[i].getElementsByTagName("Latitude");

                var name = oName[0].firstChild.nodeValue
                var Longitude = oLongitude[0].firstChild.nodeValue
                var Latitude = oLatitude[0].firstChild.nodeValue        
                
                var marker = new GMarker(new GLatLng(Longitude, Latitude), { title: name });     //對(duì)每個(gè)點(diǎn)添加標(biāo)記
                marker.openInfoWindowHtml("<div style=line-height:20px;text-align:center;font-size:12px;'><a href=Left.aspx?info=" + name + " target=framLeft>" + name + ",點(diǎn)擊查看信息</a></div>"); 
                map.addOverlay(marker);
            }
        }
    }
    //]]>
</script>

XML文件

<?xml version="1.0" encoding="GB2312"?>   
<earth>   
<number id='1'>    
<name>213211212213213</name>   
<Longitude>26.577014</Longitude>   
<Latitude>104.877977</Latitude></number>   
<number id='2'>    
<name>112312332131212</name>   
<Longitude>26.586685</Longitude>   
<Latitude>104.863815</Latitude></number>   
<number id='3'>    
<name>123123121323112</name>   
<Longitude>26.572101</Longitude>   
<Latitude>104.866905</Latitude></number>   
<number id='4'>    
<name>123132123123321</name>   
<Longitude>26.572254</Longitude>   
<Latitude>104.891624</Latitude></number>   
</earth>

youngturk 2012-11-09 15:21 發(fā)表評(píng)論
]]>
外網(wǎng)訪問(wèn)虛擬機(jī)MYSQLhttp://www.tkk7.com/youngturk/archive/2012/11/09/391084.htmlyoungturkyoungturkFri, 09 Nov 2012 03:41:00 GMThttp://www.tkk7.com/youngturk/archive/2012/11/09/391084.htmlhttp://www.tkk7.com/youngturk/comments/391084.htmlhttp://www.tkk7.com/youngturk/archive/2012/11/09/391084.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/391084.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/391084.html第一步是要?jiǎng)?chuàng)建一個(gè)可以遠(yuǎn)程連接的 MySQL 用戶
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'%'  IDENTIFIED BY 'userPWD'  WITH GRANT OPTION;
mysql> flush privileges;
### "%"表示任意IP,如果要為特定的user指定從特定的IP訪問(wèn),方法如下:
mysql> GRANT ALL PRIVILEGES ON dbname.* TO 'user'@'ip'  IDENTIFIED BY 'userPWD'  WITH GRANT OPTION;
mysql> flush privileges;

第二步是要修改 mysql 的配置文件 /etc/mysql/my.cnf

在舊版本中找到 skip-networking,把它注釋掉就可以了
#skip-networking

在新版本中:
# Instead of skip-networking the default is now to listen only on 
# localhost which is more compatible and is not less secure.
bind-address           = 127.0.0.1

bind-address           = 127.0.0.1 這一行要注釋掉
#bind-address           = 127.0.0.1

或者把允許訪問(wèn)的ip 填上
bind-address       = 192.168.1.100

然后重啟 MySQL 
/etc/init.d/mysql restart

以上方法只完成了外網(wǎng)訪問(wèn)的配置,它只允許從主機(jī)上訪問(wèn)MYSQL,如果要完全從外網(wǎng)訪問(wèn)則需要將主機(jī)的3306端口映射到虛擬機(jī)的3306上(當(dāng)然其它的端口也是可以的)


虛擬機(jī)端口映射:
http://wenku.baidu.com/view/b01c2ccca1c7aa00b52acb62.html###

youngturk 2012-11-09 11:41 發(fā)表評(píng)論
]]>
框架搭建好后,沒(méi)有詳細(xì)的錯(cuò)誤信息,主頁(yè)無(wú)法訪問(wèn).用tomcat去調(diào)試,沒(méi)有詳細(xì)log..http://www.tkk7.com/youngturk/archive/2012/11/08/391032.htmlyoungturkyoungturkThu, 08 Nov 2012 08:19:00 GMThttp://www.tkk7.com/youngturk/archive/2012/11/08/391032.htmlhttp://www.tkk7.com/youngturk/comments/391032.htmlhttp://www.tkk7.com/youngturk/archive/2012/11/08/391032.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/391032.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/391032.html這兩天在搭建struts2+spring+hibernate框架的過(guò)程中遇到如題的錯(cuò)誤,在百度和谷歌上查了兩天,以致快到了崩潰的邊緣。最后還是解決了。這個(gè)問(wèn)題的出現(xiàn),原因有很多,在這總結(jié)如下,以供分享:



框架搭建好后,啟動(dòng)服務(wù)器出現(xiàn)如下的信息:

log4j:WARN No appenders could be found for logger (org.apache.commons.digester.Digester).

log4j:WARN Please initialize the log4j system properly.

2009-11-6 21:39:17 org.apache.catalina.core.StandardContext start

嚴(yán)重: Error listenerStart

2009-11-6 21:39:17 org.apache.catalina.core.StandardContext start

嚴(yán)重: Context startup failed due to previous errors

2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install

信息: Installing web application at context path /tomcat-docs from URL file:D:/server/Tomcat 5.0/webapps/tomcat-docs

2009-11-6 21:39:17 org.apache.catalina.core.StandardHostDeployer install

信息: Installing web application at context path /webdav from URL file:D:/server/Tomcat 5.0/webapps/webdav

。。。。



可能出錯(cuò)的地方:

1.web.xml文件 web應(yīng)用部署描述符,里面的部署的xml文件或者類,如果這些找不到就會(huì)發(fā)生startup failed due to previous errors錯(cuò)誤。

2.如果在應(yīng)用spring的話,在配置文件applicationContext.xml中定義的類、xml文件找不到也會(huì)報(bào)這個(gè)錯(cuò)誤。

3.在web.xml,struts.xml,applicationContext.xml文件中自身有任何一點(diǎn)錯(cuò)誤都可能引起上面的這個(gè)問(wèn)題,而不僅僅是附帶的文件錯(cuò)誤導(dǎo)致。

4.如果使用ibatis的話,在SqlMapConfig.xml中定義的xml文件找不到也會(huì)報(bào)這個(gè)錯(cuò)誤。(hibernate的配置在整合spring的時(shí)候使用spring的配置文件)

5.JDK的版本問(wèn)題,最好使用JDK5.0 或者更高的版本。

6.Eclipse和tomcat的版本兼容問(wèn)題

7.框架整合的過(guò)程中在導(dǎo)入到lib下的jar包沖突也可能產(chǎn)生該錯(cuò)誤。

8.jar包的缺少以及jar包的版本也可產(chǎn)生該錯(cuò)誤。

9.其他的原因



解決該問(wèn)題的途徑:

由于上面問(wèn)題可能已經(jīng)是web服務(wù)器內(nèi)部產(chǎn)生了錯(cuò)誤,而且IDE中的Log信息較少,問(wèn)題的解決很難入手。

而該問(wèn)題的產(chǎn)生經(jīng)常會(huì)導(dǎo)致頁(yè)面跳轉(zhuǎn)尋找不到文件的 Http 404 錯(cuò)誤。。。。。

可以通過(guò)在tomcat中添加log文件來(lái)讓log信息提示的更精確一些,即設(shè)置log輸出的等級(jí)。

1.tomcat的安裝路徑下tomcat home下的common文件夾下的classes文件夾中創(chuàng)建log4j.properties文件,即

。。。Apache Software Foundation/Tomcat 5.5/common/classes

log4j.properties配置如下(配置是轉(zhuǎn)載):

log4j.rootLogger=info,Console,R

log4j.appender.Console=org.apache.log4j.ConsoleAppender

log4j.appender.Console.layout=org.apache.log4j.PatternLayout

#log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

log4j.appender.Console.layout.ConversionPattern=%d{yy-MM-dd HH:mm:ss} %5p %c{1}:%L - %m%n



log4j.appender.R=org.apache.log4j.DailyRollingFileAppender

log4j.appender.R.File=${catalina.home}/logs/tomcat.log

log4j.appender.R.layout=org.apache.log4j.PatternLayout

log4j.appender.R.layout.ConversionPattern=%d{yyyy.MM.dd HH:mm:ss} %5p %c{1}(%L):? %m%n



log4j.logger.org.apache=info,R

log4j.logger.org.apache.catalina.core.ContainerBase.[Catalina].[localhost]=DEBUG, R

log4j.logger.org.apache.catalina.core=info,R

log4j.logger.org.apache.catalina.session=info,R



2.將log4j-1.2.15.jar和commons-logging.jar包拷貝到。。。Apache Software Foundation/Tomcat 5.5/common/lib下即可。



做好上面兩步,啟動(dòng)服務(wù)器的時(shí)候,會(huì)在tomcat的安裝路徑下的。。Apache Software Foundation/Tomcat 5.5/logs下自動(dòng)的

生成tomcat.log文件以記錄日志信息。

注:tomcat.log文件中的日志信息會(huì)記載很多,如果過(guò)大就可能產(chǎn)生磁盤空間不足的問(wèn)題,建議定時(shí)的清除日志信息。


通過(guò)上面的日志文件信息可以定位到比較具體的問(wèn)題根源,在仔細(xì)的查看問(wèn)題一一攻破即可解決。


我在搭建框架之后,在web.xml文件中配置的歡迎頁(yè)面顯示的時(shí)候報(bào)404的錯(cuò)誤,通過(guò)上面的途徑找到了兩個(gè)錯(cuò)誤,雖然花了兩天的時(shí)間,最終還是解決了。



youngturk 2012-11-08 16:19 發(fā)表評(píng)論
]]>
struts2-java.lang.NullPointerException at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java http://www.tkk7.com/youngturk/archive/2012/11/06/390865.htmlyoungturkyoungturkTue, 06 Nov 2012 05:30:00 GMThttp://www.tkk7.com/youngturk/archive/2012/11/06/390865.htmlhttp://www.tkk7.com/youngturk/comments/390865.htmlhttp://www.tkk7.com/youngturk/archive/2012/11/06/390865.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/390865.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/390865.html1.strtus.xml

    在struts.xml中配置了<constant name="struts.devMode" value="true"/> (據(jù)說(shuō)配置了<constant name="struts.configuration.xml.reload" value="true"/>也會(huì)報(bào)錯(cuò),這個(gè)我沒(méi)試過(guò))
時(shí)啟動(dòng)tomcat報(bào)錯(cuò)。
org.apache.catalina.core.StandardContext filterStart
嚴(yán)重: Exception starting filter struts2
java.lang.NullPointerException
    at com.opensymphony.xwork2.util.FileManager$FileRevision.needsReloading(FileManager.java:209)
    at com.opensymphony.xwork2.util.FileManager.fileNeedsReloading(FileManager.java:60)
    at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.needsReload(XmlConfigurationProvider.java:325)
    at org.apache.struts2.config.StrutsXmlConfigurationProvider.needsReload(StrutsXmlConfigurationProvider.java:168)
    at com.opensymphony.xwork2.config.ConfigurationManager.conditionalReload(ConfigurationManager.java:220)
    at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:61)
    at org.apache.struts2.dispatcher.Dispatcher.getContainer(Dispatcher.java:774)
    at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:191)
    at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
    at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
    at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
    at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:525)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:926)
    at org.apache.catalina.startup.HostConfig.deployDirectories(HostConfig.java:889)
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:492)
    at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1149)
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
    at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
    at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
    at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
    at org.apache.catalina.core.StandardService.start(StandardService.java:516)
    at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
    at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
    at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)
2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
嚴(yán)重: Error filterStart
2009-2-4 22:40:54 org.apache.catalina.core.StandardContext start
嚴(yán)重: Context [/Struts2Demo2] startup failed due to previous errors

網(wǎng)上解決辦法:devMode模式是開(kāi)發(fā)模式,開(kāi)啟它則默認(rèn)開(kāi)啟了i18n.reload、 configuration.xml.reload。這個(gè)錯(cuò)誤是由于configuration.xml.reload設(shè)置為true倒置的,但是網(wǎng)上的資料沒(méi)有說(shuō)明原因及解決辦法,倒是一個(gè)國(guó)外的apache相關(guān)BBS上有人說(shuō)這是216版本的BUG,并且附上了一個(gè).patch修正文件,說(shuō)217版本會(huì)修正。。。可我不會(huì)用也不知道是不是這個(gè)原因,這個(gè)問(wèn)題就一直擱置在這里了。過(guò)了幾個(gè)月,也就是最近網(wǎng)上查了下發(fā)現(xiàn)在apache的一個(gè)郵件列表中有關(guān)于這個(gè)的解釋,原因很簡(jiǎn)單,tomcat的安裝路徑包含空格我的成功的辦法:據(jù)說(shuō)這是struts2.1.6的bug,換新版本2.1.8就ok,當(dāng)然還要相應(yīng)的xwork版本,好像是xwork2.1.6,我將原來(lái)的2個(gè)舊jar包換成新的就ok了。。。。無(wú)語(yǔ)啊。。。一試果然如此。

注意:2個(gè)jar包換了之后重啟tomcat可能會(huì)報(bào)錯(cuò), Unable to load bean: type: class:com.opensymphony.xwork2.ObjectFactory - bean - jar,這個(gè)錯(cuò)誤是開(kāi)始那個(gè)引起的,把tomcat中相應(yīng)項(xiàng)目刪除了,重新部署就沒(méi)問(wèn)題了

   下面是4個(gè)開(kāi)發(fā)模式常用配置的簡(jiǎn)介---(來(lái)自http://hi.baidu.com/12261016/blog/item/1d7f6ccaded7248ec91768ec.html)
    <!-- 開(kāi)啟使用開(kāi)發(fā)模式,詳細(xì)錯(cuò)誤提示 -->
    <!-- <constant name="struts.devMode" value="true"/>-->
    <!-- 指定每次請(qǐng)求到達(dá),重新加載資源文件 -->
    <!-- <constant name="struts.i18n.reload" value="true"/>-->
    <!-- 指定每次配置文件更改后,自動(dòng)重新加載 -->
    <!-- <constant name="struts.configuration.xml.reload" value="true"/>-->
    <!-- 指定XSLT Result使用樣式表緩存 -->
    <!-- <constant name="struts.xslt.nocache" value="true"/>-->



youngturk 2012-11-06 13:30 發(fā)表評(píng)論
]]>
解決jdk高版本向低版本配置問(wèn)題.. tomcat服務(wù)器可以用jdk1.5啟動(dòng),編譯環(huán)境向下兼容 jdk1.5,jdk1.4之間轉(zhuǎn)換http://www.tkk7.com/youngturk/archive/2012/10/29/390413.htmlyoungturkyoungturkMon, 29 Oct 2012 09:32:00 GMThttp://www.tkk7.com/youngturk/archive/2012/10/29/390413.htmlhttp://www.tkk7.com/youngturk/comments/390413.htmlhttp://www.tkk7.com/youngturk/archive/2012/10/29/390413.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/390413.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/390413.html這事為了tomcat jdk5環(huán)境能適應(yīng)jdk1.4的編譯環(huán)境,向下兼容..

youngturk 2012-10-29 17:32 發(fā)表評(píng)論
]]>
tomcat 不同版本之間轉(zhuǎn)換問(wèn)題 報(bào)java.lang.NoClassDefFoundError: org/apache/juli/logging/LogFactory錯(cuò)http://www.tkk7.com/youngturk/archive/2012/10/15/389568.htmlyoungturkyoungturkMon, 15 Oct 2012 05:49:00 GMThttp://www.tkk7.com/youngturk/archive/2012/10/15/389568.htmlhttp://www.tkk7.com/youngturk/comments/389568.htmlhttp://www.tkk7.com/youngturk/archive/2012/10/15/389568.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/389568.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/389568.html1.屬性preferences目錄tomcat屬性下version和tomcat home需要設(shè)置對(duì)應(yīng)版本
2.comcat advanced目錄下對(duì)應(yīng)的tomcat base也需要對(duì)應(yīng)相應(yīng)版本

tomcat 6在使用redio進(jìn)行
DeliveryMainIndex obj = (DeliveryMainIndex)this.bindRequestToBean(DeliveryMainIndex.class);
反射時(shí)候取值會(huì)有問(wèn)題.

youngturk 2012-10-15 13:49 發(fā)表評(píng)論
]]>
Tomcat設(shè)置虛擬目錄的方法, 不修改server.xml http://www.tkk7.com/youngturk/archive/2012/10/10/389276.htmlyoungturkyoungturkWed, 10 Oct 2012 01:16:00 GMThttp://www.tkk7.com/youngturk/archive/2012/10/10/389276.htmlhttp://www.tkk7.com/youngturk/comments/389276.htmlhttp://www.tkk7.com/youngturk/archive/2012/10/10/389276.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/389276.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/389276.html在tomcat文件夾的conf\catalina\localhost增加project .xml文件
文件內(nèi)容: 
<Context path="/project" reloadable="true" docBase="E:\javastudio\oob" workDir="E:\javastudio\oob\work" />
docBase是項(xiàng)目文件夾的web
-inf文件夾的上一層目錄
workDir是指Tomcat解析Jsp轉(zhuǎn)換為Java文件,并編譯為class存放的文件夾,設(shè)置 在項(xiàng)目文件夾里面,可以避免移植到其他地方首次讀取jsp文件需要重新解析 。一般格式:項(xiàng)目文件夾\work
reloadable是指可以重新加載,一般設(shè)置為true,方便使用,不需要經(jīng)常重啟Tomcat。 
以后啟動(dòng)Tomcat,在瀏覽器輸入http:
//localhost:8080/project就能訪問(wèn)該項(xiàng)目的welcome文件。
 
***************
為什么要不修改server.xml呢?在Tomcat6的doc幫助文檔中,官方是不提倡修改 server.xml來(lái)添加虛擬目錄的!
       而我認(rèn)為,以上使用的方法,非常方便于項(xiàng)目的移植,移植后,只有修改docBase和workDir的值就行了,甚至可以去掉workDir這個(gè)屬性!
 
***************


代碼 

<Context path="/ucshop" reloadable="true" docBase="G:\UCshop\ucshop"  workDir="G:\UCshop\ucshop\work">

<Resource name="jdbc/ucshop" auth="Container"
            type
="javax.sql.DataSource"
            driverClassName
="com.microsoft.jdbc.sqlserver.SQLServerDriver"
            url
="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=ucshop"
            username
="sa"
            password
="sa"
            maxIdle
="5"
            maxWait
="5000"
            maxActive
="10"/>

</Context>

注:如果不需要數(shù)據(jù)源,可以不寫(xiě)resource標(biāo)簽的部分。




youngturk 2012-10-10 09:16 發(fā)表評(píng)論
]]>
tomcate 報(bào) PermGen space 錯(cuò)誤Exception in thread "main" java.lang.OutOfMemoryError: PermGen spacehttp://www.tkk7.com/youngturk/archive/2012/07/22/383729.htmlyoungturkyoungturkSun, 22 Jul 2012 12:25:00 GMThttp://www.tkk7.com/youngturk/archive/2012/07/22/383729.htmlhttp://www.tkk7.com/youngturk/comments/383729.htmlhttp://www.tkk7.com/youngturk/archive/2012/07/22/383729.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/383729.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/383729.html設(shè)置:

-Xmx256m
-Xms256m
-XX:PermSize=512m
-XX:MaxPermSize=512m
-verbose:gc


youngturk 2012-07-22 20:25 發(fā)表評(píng)論
]]>
導(dǎo)入SVN工程到myEclipse中http://www.tkk7.com/youngturk/archive/2012/07/04/382232.htmlyoungturkyoungturkWed, 04 Jul 2012 15:12:00 GMThttp://www.tkk7.com/youngturk/archive/2012/07/04/382232.htmlhttp://www.tkk7.com/youngturk/comments/382232.htmlhttp://www.tkk7.com/youngturk/archive/2012/07/04/382232.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/382232.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/382232.html1,改名包為可編譯的source包
2,新建WEB-INF/src 為source包
3.將工程右鍵點(diǎn)擊,發(fā)布為j2ee web工程

youngturk 2012-07-04 23:12 發(fā)表評(píng)論
]]>
國(guó)際化http://www.tkk7.com/youngturk/archive/2012/06/07/380275.htmlyoungturkyoungturkThu, 07 Jun 2012 14:22:00 GMThttp://www.tkk7.com/youngturk/archive/2012/06/07/380275.html

一:準(zhǔn)備資源文件,資源文件的命名格式如下:

                   baseName_language_country.properties

                   baseName_language.properties

                   baseName.properties

其中baseName是資源文件的基本名,我們可以自定義,但languagecountry必須是java支持的語(yǔ)言和國(guó)家。如:

                   中國(guó)大陸:baseName_zh_CN.properties

                   美國(guó):baseName_en_US.properties

現(xiàn)在為應(yīng)用添加兩個(gè)資源文件:

二:準(zhǔn)備好資源文件后:配置struts.xml文件

struts.custom.i18n.resources常量把資源文件定義為全局資源文件,

<constant name="struts.custom.i18n.resources" value="itcast"/>

Itcast為資源文件的基本名。

三:后面我們可以在頁(yè)面或action中訪問(wèn)國(guó)際化信息:

         1JSP頁(yè)面中使用<s:text name=””/>標(biāo)簽輸出國(guó)際化信息。

          name為資源文件中的key

         2action 類中,可以繼承ActionSupport,使用getText(“key”)方法得到國(guó)際

化信息,該方法的第一個(gè)參數(shù)用于指定資源文件中的key

         3在表單標(biāo)簽中,通過(guò)key屬性指定資源文件中的key,如:

                   <s:textfield name=”realname” key=”user”/>




想取得國(guó)際化內(nèi)容:1繼承action 類中,可以繼承ActionSupport,2使用this.getText方法

ActionContext.getContext().put("message"為jsp頁(yè)面中變量,
this.getText獲得baseName_zh_CN.properties文件中對(duì)應(yīng)key值("welcome"));

中英文環(huán)境修改: 工具---》選項(xiàng)---》語(yǔ)言,進(jìn)行修改..


youngturk 2012-06-07 22:22 發(fā)表評(píng)論
]]>
修改myEclipse自帶的tomcat發(fā)布端口http://www.tkk7.com/youngturk/archive/2012/05/29/379480.htmlyoungturkyoungturkTue, 29 May 2012 13:52:00 GMThttp://www.tkk7.com/youngturk/archive/2012/05/29/379480.htmlhttp://www.tkk7.com/youngturk/comments/379480.htmlhttp://www.tkk7.com/youngturk/archive/2012/05/29/379480.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/379480.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/379480.htmlMyEclipse文件下去搜索server.xml 這個(gè)文件

修改這個(gè)文件里面的一個(gè)參數(shù)

<Connector port="8080" protocol="HTTP/1.1"

               connectionTimeout="20000"

               redirectPort="8443" />


2.在Myeclipse中,在(工具欄吧叫做,就是有File Edit 的那一行),選window -> Preferences -> Myeclipse -> Servers -> Integrated Sandbox -> Myeclipse Tomcat 6修改相應(yīng)端口號(hào)

youngturk 2012-05-29 21:52 發(fā)表評(píng)論
]]>
同一項(xiàng)目重新引入tomcathttp://www.tkk7.com/youngturk/archive/2012/05/18/378522.htmlyoungturkyoungturkFri, 18 May 2012 11:17:00 GMThttp://www.tkk7.com/youngturk/archive/2012/05/18/378522.htmlhttp://www.tkk7.com/youngturk/comments/378522.htmlhttp://www.tkk7.com/youngturk/archive/2012/05/18/378522.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/378522.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/378522.htmlservice.xml中重建項(xiàng)目context配置.

youngturk 2012-05-18 19:17 發(fā)表評(píng)論
]]>
tomcat目錄下的service.xml解析http://www.tkk7.com/youngturk/archive/2012/05/17/378367.htmlyoungturkyoungturkThu, 17 May 2012 02:05:00 GMThttp://www.tkk7.com/youngturk/archive/2012/05/17/378367.htmlhttp://www.tkk7.com/youngturk/comments/378367.htmlhttp://www.tkk7.com/youngturk/archive/2012/05/17/378367.html#Feedback0http://www.tkk7.com/youngturk/comments/commentRss/378367.htmlhttp://www.tkk7.com/youngturk/services/trackbacks/378367.htmltomcat server.xml配置詳解
2011-03-08 16:34

元素名
屬性
解釋
server
port
指定一個(gè)端口,這個(gè)端口負(fù)責(zé)監(jiān)聽(tīng)關(guān)閉tomcat的請(qǐng)求
shutdown
指定向端口發(fā)送的命令字符串
service
name
指定service的名字
Connector(表示客戶端和service之間的連接)
port
指定服務(wù)器端要?jiǎng)?chuàng)建的端口號(hào),并在這個(gè)斷口監(jiān)聽(tīng)來(lái)自客戶端的請(qǐng)求
minProcessors
服務(wù)器啟動(dòng)時(shí)創(chuàng)建的處理請(qǐng)求的線程數(shù)
maxProcessors
最大可以創(chuàng)建的處理請(qǐng)求的線程數(shù)
enableLookups
如果為true,則可以通過(guò)調(diào)用request.getRemoteHost()進(jìn)行DNS查詢來(lái)得到遠(yuǎn)程客戶端的實(shí)際主機(jī)名,若為false則不進(jìn)行DNS查詢,而是返回其ip地址
redirectPort
指定服務(wù)器正在處理http請(qǐng)求時(shí)收到了一個(gè)SSL傳輸請(qǐng)求后重定向的端口號(hào)
acceptCount
指定當(dāng)所有可以使用的處理請(qǐng)求的線程數(shù)都被使用時(shí),可以放到處理隊(duì)列中的請(qǐng)求數(shù),超過(guò)這個(gè)數(shù)的請(qǐng)求將不予處理
connectionTimeout
指定超時(shí)的時(shí)間數(shù)(以毫秒為單位)
Engine(表示指定service中的請(qǐng)求處理機(jī),接收和處理來(lái)自Connector的請(qǐng)求)
defaultHost
指定缺省的處理請(qǐng)求的主機(jī)名,它至少與其中的一個(gè)host元素的name屬性值是一樣的
Context(表示一個(gè)web應(yīng)用程序,通常為WAR文件,關(guān)于WAR的具體信息見(jiàn)servlet規(guī)范)
docBase
應(yīng)用程序的路徑或者是WAR文件存放的路徑
path
表示此web應(yīng)用程序的url的前綴,這樣請(qǐng)求的urlhttp://localhost:8080/path/****
reloadable
這個(gè)屬性非常重要,如果為true,則tomcat會(huì)自動(dòng)檢測(cè)應(yīng)用程序的/WEB-INF/lib /WEB-INF/classes目錄的變化,自動(dòng)裝載新的應(yīng)用程序,我們可以在不重起tomcat的情況下改變應(yīng)用程序
host(表示一個(gè)虛擬主機(jī))
name
指定主機(jī)名
appBase
應(yīng)用程序基本目錄,即存放應(yīng)用程序的目錄
unpackWARs
如果為true,則tomcat會(huì)自動(dòng)將WAR文件解壓,否則不解壓,直接從WAR文件中運(yùn)行應(yīng)用程序
Logger(表示日志,調(diào)試和錯(cuò)誤信息)
className
指定logger使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Logger 接口
prefix
指定log文件的前綴
suffix
指定log文件的后綴
timestamp
如果為true,則log文件名中要加入時(shí)間,如下例:localhost_log.2001-10-04.txt
Realm(表示存放用戶名,密碼及role的數(shù)據(jù)庫(kù))
className
指定Realm使用的類名,此類必須實(shí)現(xiàn)org.apache.catalina.Realm接口
Valve(功能與Logger差不多,其prefixsuffix屬性解釋和Logger 中的一樣)
className
指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve類可以記錄應(yīng)用程序的訪問(wèn)信息
directory
指定log文件存放的位置
pattern
有兩個(gè)值,common方式記錄遠(yuǎn)程主機(jī)名或ip地址,用戶名,日期,第一行請(qǐng)求的字符串,HTTP響應(yīng)代碼,發(fā)送的字節(jié)數(shù)。combined方式比common方式記錄的值更多

<Server>元素


它代表整個(gè)容器,是Tomcat實(shí)例的頂層元素.由org.apache.catalina.Server接口來(lái)定義.它包含一個(gè)
<Service>元素.并且它不能做為任何元素的子元素.

<Server port="8005" shutdown="SHUTDOWN" debug="0">

1>className指定實(shí)現(xiàn)org.apache.catalina.Server接口的類.默認(rèn)值為
org.apache.catalina.core.StandardServer
2>port指定Tomcat監(jiān)聽(tīng)shutdown命令端口.終止服務(wù)器運(yùn)行時(shí),必須在Tomcat服務(wù)器所在的機(jī)器上發(fā)出
shutdown命令.該屬性是必須的.
3>shutdown指定終止Tomcat服務(wù)器運(yùn)行時(shí),發(fā)給Tomcat服務(wù)器的shutdown監(jiān)聽(tīng)端口的字符串.該屬性必須設(shè)


<Service>元素


該元素由org.apache.catalina.Service接口定義,它包含一個(gè)<Engine>元素,以及一個(gè)或多個(gè)
<Connector>,這些Connector元素共享用同一個(gè)Engine元素
   
<Service name="Catalina">
   
<Service name="Apache">

   第一個(gè)<Service>處理所有直接由Tomcat服務(wù)器接收的web客戶請(qǐng)求.
   第二個(gè)<Service>處理所有由Apahce服務(wù)器轉(zhuǎn)發(fā)過(guò)來(lái)的Web客戶請(qǐng)求
1>className 指定實(shí)現(xiàn)org.apahce.catalina.Service接口的類.默認(rèn)為
org.apahce.catalina.core.StandardService
2>name定義Service的名字

<Engine>元素


每個(gè)Service元素只能有一個(gè)Engine元素.元素處理在同一個(gè)<Service>中所有<Connector>元素接收到的客
戶請(qǐng)求.由org.apahce.catalina.Engine接口定義.
<Engine name="Catalina" defaultHost="localhost" debug="0">
1>className指定實(shí)現(xiàn)Engine接口的類,默認(rèn)值為StandardEngine
2>defaultHost指定處理客戶的默認(rèn)主機(jī)名,在<Engine>中的<Host>子元素中必須定義這一主機(jī)
3>name定義Engine的名字
在<Engine>可以包含如下元素<Logger>, <Realm>, <Value>, <Host>

<Host>元素


它由Host接口定義.一個(gè)Engine元素可以包含多個(gè)<Host>元素.每個(gè)<Host>的元素定義了一個(gè)虛擬主機(jī).它
包含了一個(gè)或多個(gè)Web應(yīng)用.
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
1>className指定實(shí)現(xiàn)Host接口的類.默認(rèn)值為StandardHost
2>appBase指定虛擬主機(jī)的目錄,可以指定絕對(duì)目錄,也可以指定相對(duì)于<CATALINA_HOME>的相對(duì)目錄.如果
沒(méi)有此項(xiàng),默認(rèn)為<CATALINA_HOME>/webapps
3>autoDeploy如果此項(xiàng)設(shè)為true,表示Tomcat服務(wù)處于運(yùn)行狀態(tài)時(shí),能夠監(jiān)測(cè)appBase下的文件,如果有新有
web應(yīng)用加入進(jìn)來(lái),會(huì)自運(yùn)發(fā)布這個(gè)WEB應(yīng)用
4>unpackWARs如果此項(xiàng)設(shè)置為true,表示把WEB應(yīng)用的WAR文件先展開(kāi)為開(kāi)放目錄結(jié)構(gòu)后再運(yùn)行.如果設(shè)為
false將直接運(yùn)行為WAR文件
5>alias指定主機(jī)別名,可以指定多個(gè)別名
6>deployOnStartup如果此項(xiàng)設(shè)為true,表示Tomcat服務(wù)器啟動(dòng)時(shí)會(huì)自動(dòng)發(fā)布appBase目錄下所有的Web應(yīng)用
.如果Web應(yīng)用中的server.xml沒(méi)有相應(yīng)的<Context>元素,將采用Tomcat默認(rèn)的Context
7>name定義虛擬主機(jī)的名字
在<Host>元素中可以包含如下子元素
<Logger>, <Realm>, <Value>, <Context>

<Context>元素


它由Context接口定義.是使用最頻繁的元素.每個(gè)<Context元素代表了運(yùn)行在虛擬主機(jī)上的單個(gè)Web應(yīng)用.
一個(gè)<Host>可以包含多個(gè)<Context>元素.每個(gè)web應(yīng)用有唯一
的一個(gè)相對(duì)應(yīng)的Context代表web應(yīng)用自身.servlet容器為第一個(gè)web應(yīng)用創(chuàng)建一個(gè)
ServletContext對(duì)象.
<Context path="/sample" docBase="sample" debug="0" reloadbale="true">
1>className指定實(shí)現(xiàn)Context的類,默認(rèn)為StandardContext類
2>path指定訪問(wèn)Web應(yīng)用的URL入口,注意/myweb,而不是myweb了事
3>reloadable如果這個(gè)屬性設(shè)為true, Tomcat服務(wù)器在運(yùn)行狀態(tài)下會(huì)監(jiān)視在WEB-INF/classes和Web-
INF/lib目錄CLASS文件的改運(yùn).如果監(jiān)視到有class文件被更新,服務(wù)器自重新加載Web應(yīng)用
3>cookies指定是否通過(guò)Cookies來(lái)支持Session,默認(rèn)值為true
4>useNaming指定是否支持JNDI,默認(rèn)值為了true
在<Context>元素中可以包含如下元素
<Logger>, <Realm>, <Resource>, <ResourceParams>

<Connector>元素


由Connector接口定義.<Connector>元素代表與客戶程序?qū)嶋H交互的給件,它負(fù)責(zé)接收客戶請(qǐng)求,以及向客
戶返回響應(yīng)結(jié)果.
<Connector port="8080" maxThread="50" minSpareThreads="25" maxSpareThread="75"
enableLookups
="false" redirectPort="8443" acceptCount="100" debug="0"
connectionTimeout
="20000" disableUploadTimeout="true" />
<Connection port="8009" enableLookups="false" redirectPort="8443" debug="0"
protocol
="AJP/1.3" />
第一個(gè)Connector元素定義了一個(gè)HTTP Connector,它通過(guò)8080端口接收HTTP請(qǐng)求;第二個(gè)Connector元素定
義了一個(gè)JD Connector,它通過(guò)8009端口接收由其它服務(wù)器轉(zhuǎn)發(fā)過(guò)來(lái)的請(qǐng)求.
Connector元素共用屬性
1>className指定實(shí)現(xiàn)Connector接口的類
2>enableLookups如果設(shè)為true,表示支持域名解析,可以把IP地址解析為主機(jī)名.WEB應(yīng)用中調(diào)用
request.getRemoteHost方法返回客戶機(jī)主機(jī)名.默認(rèn)值為true
3>redirectPort指定轉(zhuǎn)發(fā)端口.如果當(dāng)前端口只支持non-SSL請(qǐng)求,在需要安全通信的場(chǎng)命,將把客戶請(qǐng)求轉(zhuǎn)
發(fā)至SSL的redirectPort端口
HttpConnector元素的屬性
1>className實(shí)現(xiàn)Connector的類
2>port設(shè)定Tcp/IP端口,默認(rèn)值為8080,如果把8080改成80,則只要輸入http://localhost即可
因?yàn)門CP/IP的默認(rèn)端口是80
3>address如果服務(wù)器有二個(gè)以上ip地址,此屬性可以設(shè)定端口監(jiān)聽(tīng)的ip地址.默認(rèn)情況下,端口會(huì)監(jiān)聽(tīng)服務(wù)
器上所有的ip地址
4>bufferSize設(shè)定由端口創(chuàng)建的輸入流的緩存大小.默認(rèn)值為2048byte
5>protocol設(shè)定Http協(xié)議,默認(rèn)值為HTTP/1.1
##############################################
忍無(wú)可忍了,決定做個(gè)全面的測(cè)試,環(huán)境為mysql5+tomcat5.5,框架基于spring+hibernate+struts,測(cè)試工具為jmeter,loadruner。     
    直接部署工程,運(yùn)行jmeter,確實(shí),不到30的并發(fā),工程當(dāng)了。。    
     優(yōu)化tomcat         編輯bin目錄下catalina.bat,加入以下語(yǔ)句      
   set JAVA_OPTS=-Xms1024m -Xmx1024m -XX:MaxNewSize=256m -XX:MaxPermSize=256m    
     內(nèi)存的設(shè)置于系統(tǒng)內(nèi)存大小有關(guān),一般取50%         編輯conf下server.xml,     
   <Connector port="8080" maxHttpHeaderSize="8192"             
    maxThreads="1000" minSpareThreads="250" maxSpareThreads="500"            
     enableLookups="false" redirectPort="8443" acceptCount="1100"               
  connectionTimeout="20000" disableUploadTimeout="true" />      
   優(yōu)化mysql         我主要修改了一個(gè)最大連接數(shù),修改my.ini       
  max_connections=1024        優(yōu)化連接池設(shè)置  
 jdbc.maxActive=2048  jdbc.maxIdle=1024  jdbc.minIdle=5  jdbc.maxWait=8000  
jdbc.removeAbandonedTimeout=8  jdbc.removeAbandoned=true       
  在loadruner下設(shè)置300并發(fā),輕松愉快,小試牛刀;接著做穩(wěn)定性測(cè)試,設(shè)置300人同時(shí)在線,運(yùn)行時(shí)間為無(wú)限次,到今天為止已經(jīng)有36小時(shí)了,監(jiān)控系統(tǒng)的cpu,內(nèi)存使用情況,一切良好。  
########################################
1)
<Context path="/hh" docBase="D:\aaa"  reloadable="true" debug="0"/>
當(dāng)是這個(gè)配置的時(shí)候,再瀏覽器中輸入http://localhost:8080/hh/a.html可以訪問(wèn)到d:\aaa下的a.html.

(2)
<Context path="/" docBase="D:\aaa"  reloadable="true" debug="0"/>
當(dāng)是這個(gè)配置的時(shí)候,再瀏覽器中輸入http://localhost:8080/a.html,訪問(wèn)到卻是 tomcat 安裝目錄下的 ROOT 下的a.html.

(3)
<Context path="" docBase="D:\aaa"  reloadable="true" debug="0"/>
當(dāng)是這個(gè)配置的時(shí)候,再瀏覽器中輸入http://localhost:8080/a.html,訪問(wèn)到D:\下的a.html.


youngturk 2012-05-17 10:05 發(fā)表評(píng)論
]]>
主站蜘蛛池模板: 97免费人妻无码视频| 免费人成视频在线观看免费| 一级做a毛片免费视频| 国产精品免费看久久久久| 亚洲喷奶水中文字幕电影| 热99RE久久精品这里都是精品免费 | 日韩插啊免费视频在线观看 | 国产亚洲日韩在线a不卡| 女人18毛片水真多免费播放| 亚洲另类视频在线观看| 99久久99久久精品免费观看 | 亚洲Av无码国产一区二区| 免费a级毛片高清视频不卡| 亚洲中文字幕久久精品蜜桃| 丁香花免费高清视频完整版| 成人亚洲国产va天堂| 在线免费观看国产视频| 一级视频在线免费观看| 亚洲乱码精品久久久久..| 四虎国产成人永久精品免费| 亚洲沟沟美女亚洲沟沟| 麻豆国产VA免费精品高清在线| 免费很黄无遮挡的视频毛片| 亚洲一区二区三区AV无码| 中文字幕成人免费视频| 亚洲精品成a人在线观看夫| 亚洲午夜久久久久久噜噜噜| 最近最新高清免费中文字幕| 亚洲欧美一区二区三区日产| 亚洲伊人久久综合中文成人网| 鲁大师在线影院免费观看| 亚洲无码一区二区三区 | 久久国产亚洲电影天堂| 日韩免费高清视频网站| 日韩电影免费在线观看| 亚洲av无码无线在线观看 | 日本免费一区二区久久人人澡| 99亚偷拍自图区亚洲| 亚洲av网址在线观看| 可以免费观看的一级毛片| 麻花传媒剧在线mv免费观看|