Eclipse+Tomcat調(diào)試時(shí)的一些錯(cuò)誤筆記
Eclipse+Tomcat調(diào)試時(shí)的一些錯(cuò)誤筆記
No.1:
今天在測(cè)試Eclipse+Tomcat寫的應(yīng)用程序的時(shí)候出現(xiàn)了這樣警告:
2008-10-11 21:33:55 org.apache.tomcat.util.digester.SetPropertiesRule begin
警告 : [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.jee.server:TestTomcat6.0.16' did not find a matching property.
2008-10-11 21:33:55 org.apache.catalina.core.AprLifecycleListener init
信息 : The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:"study tools"Java"jdk1.5.0_06"bin;.;C:"WINDOWS"system32;C:"WINDOWS;D:/study tools/Java/jdk1.5.0_06/bin/../jre/bin/client;D:/study tools/Java/jdk1.5.0_06/bin/../jre/bin;D:"study tools"Borland"Delphi7"Bin;D:"study tools"Borland"Delphi7"Projects"Bpl";D:"study tools"Java"jdk1.5.0_06"bin;C:"WINDOWS"system32;C:"WINDOWS;C:"WINDOWS"System32"Wbem;D:"study tools"MySQL"MySQL Server 5.0"bin;C:"Program Files"Microsoft SQL Server"80"Tools"BINN
出現(xiàn)SetPropertiesRule 警告的原因是因?yàn)門omcat 在server.xml 的Context 節(jié)點(diǎn)中不支持source 屬性: <Context docBase="…" path="/…" source="org.eclipse.jst.j2ee.server:…"/>
解決方法是在Servers 視圖里雙擊創(chuàng)建的server ,然后在其server 的配置界面中選中"Publish module contexts to separate XML files" 選項(xiàng)。如下圖:
不過,不知道這樣做的具體意義是什么,因?yàn)榧词钩霈F(xiàn)這個(gè)Warning,程序也正常執(zhí)行。
NO2:
還有一個(gè)錯(cuò)誤信息是:
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path:
這個(gè)具體信息參考:Apache Tomcat Native library
解決方法是:http://tomcat.heanet.ie/native/ 下載你需要的版本的tcnative-1.dll放入System32下面或者放在Tomcat 的bin目錄下即可。
NO3:
這個(gè)跟Mysql有關(guān),就是在插入Date類型數(shù)據(jù)時(shí)候,Java改如何寫插入語(yǔ)句:
- Date newDate = java.sql.Date.valueOf(time);
- rs.moveToInsertRow();
- rs.updateDate(5, newDate);
- rs.insertRow();
NO4,:
今天用javamail做了一個(gè)發(fā)送郵件的功能.遇到了一系列的問題.
1:在本地(windows環(huán)境)測(cè)試一切正常,上傳到服務(wù)器(Linux環(huán)境)就出了問題.[java.lang.SecurityException: Access to default session denied ],也就是獲得默認(rèn)的session時(shí)無(wú)法獲得.郁悶了N久,在網(wǎng)上搜了下,有朋友遇到同樣的問題,但都沒人給予解決方案,我在csdn,javaeye發(fā)帖也沒人回.后來(lái)在又看了一朋友的blog,他寫的解決辦法是, 把 mailSession = Session.getDefaultInstance(props,sa);改成mailSession = Session.getInstance(props,sa); 就是新創(chuàng)建一個(gè)session,我試了下,可以解決問題.但還是找到為什么不能獲取默認(rèn)session的原因.而且擔(dān)心這樣沒次都Session.getInstance(props,sa);會(huì)不會(huì)出問題.
2.發(fā)送email內(nèi)容為html時(shí),出現(xiàn)亂碼.同樣是在本地測(cè)試正常,傳到服務(wù)器上就出問題.后來(lái)經(jīng)過測(cè)試,發(fā)現(xiàn)是服務(wù)器默認(rèn)編碼的問題,服務(wù)器 的默認(rèn)編碼UTF-8,我的email內(nèi)容是本地一html文件,在讀取文件內(nèi)容時(shí)沒有設(shè)置編碼,所以讀取出來(lái)的就已經(jīng)是亂碼了,.后來(lái)該成 FileInputStream fis = new FileInputStream(filename);BufferedReader in = new BufferedReader(new InputStreamReader(fis,"GBK"));就OK了. InputStreamReader不指定編碼方式的話將采用底層操作系統(tǒng)的默認(rèn)編碼方式,所以這里要在構(gòu)造器重指定編碼的方式.
3.static變量的問題. 我定義了一個(gè)靜態(tài)類變量public static boolean isRunning = false;來(lái)判斷狀態(tài),剛開始一切正常,但是在一次出了異常之后.就無(wú)法執(zhí)行了,有讓我郁悶了好大一會(huì).后來(lái)才發(fā)現(xiàn).是static的原因.( static變量屬于類變量,在這個(gè)類的所有 new出來(lái)的對(duì)象中只存在一個(gè)該變量,每個(gè)對(duì)象是對(duì)同一變量進(jìn)行操作,static的變量和初始化塊僅僅運(yùn)行一次。不象沒有static的變量,每次new的時(shí)候,都會(huì)重新初始化 。)因?yàn)閟tatic變量只初始化一次,之后使用的值都是之前的狀態(tài)值.所以我的問題就出在當(dāng)運(yùn)行正常時(shí),運(yùn)行時(shí)會(huì)把狀態(tài)改為true,結(jié)束后會(huì)把狀態(tài)改為false.但是出現(xiàn)異常時(shí),后面就沒把狀態(tài)改成false.所以下次執(zhí)行時(shí)就無(wú)法往下執(zhí)行了. from:http://hi.baidu.com/xublog/blog/item/7f7d5bfc8f356381b901a0e7.htmlposted on 2009-03-31 14:47 lau 閱讀(1043) 評(píng)論(2) 編輯 收藏 所屬分類: Eclipse