No.1:
今天在測試Eclipse+Tomcat寫的應用程序的時候出現了這樣警告:
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
出現SetPropertiesRule
警告的原因是因為Tomcat
在server.xml
的Context
節點中不支持source
屬性:
<Context docBase="…" path="/…" source="org.eclipse.jst.j2ee.server:…"/>
解決方法是在Servers
視圖里雙擊創建的server
,然后在其server
的配置界面中選中"Publish module contexts to separate XML files"
選項。如下圖:
不過,不知道這樣做的具體意義是什么,因為即使出現這個Warning,程序也正常執行。
NO2:
還有一個錯誤信息是:
信息: The Apache Tomcat Native
library which allows optimal performance in production environments was
not found on the java.library.path:
這個具體信息參考:Apache Tomcat Native library
解決方法是:http://tomcat.heanet.ie/native/
下載你需要的版本的tcnative-1.dll放入System32下面或者放在Tomcat
的bin目錄下即可。
NO3:
這個跟Mysql有關,就是在插入Date類型數據時候,Java改如何寫插入語句:
- Date newDate = java.sql.Date.valueOf(time);
- rs.moveToInsertRow();
- rs.updateDate(5, newDate);
- rs.insertRow();
Date newDate = java.sql.Date.valueOf(time);
rs.moveToInsertRow();
rs.updateDate(5, newDate);
rs.insertRow();
NO4,:
今天用javamail做了一個發送郵件的功能.遇到了一系列的問題.
1:在本地(windows環境)測試一切正常,上傳到服務器(Linux環境)就出了問題.[java.lang.SecurityException: Access to default session denied
],也就是獲得默認的session時無法獲得.郁悶了N久,在網上搜了下,有朋友遇到同樣的問題,但都沒人給予解決方案,我在csdn,javaeye發帖也沒人回.后來在又看了一朋友的blog,他寫的解決辦法是,
把 mailSession = Session.getDefaultInstance(props,sa);改成mailSession = Session.getInstance(props,sa);
就是新創建一個session,我試了下,可以解決問題.但還是找到為什么不能獲取默認session的原因.而且擔心這樣沒次都Session.getInstance(props,sa);會不會出問題.
2.發送email內容為html時,出現亂碼.同樣是在本地測試正常,傳到服務器上就出問題.后來經過測試,發現是服務器默認編碼的問題,服務器
的默認編碼UTF-8,我的email內容是本地一html文件,在讀取文件內容時沒有設置編碼,所以讀取出來的就已經是亂碼了,.后來該成
FileInputStream fis = new FileInputStream(filename);BufferedReader in =
new BufferedReader(new InputStreamReader(fis,"GBK"));就OK了.
InputStreamReader不指定編碼方式的話將采用底層操作系統的默認編碼方式,所以這里要在構造器重指定編碼的方式.
3.static變量的問題. 我定義了一個靜態類變量public static boolean isRunning =
false;來判斷狀態,剛開始一切正常,但是在一次出了異常之后.就無法執行了,有讓我郁悶了好大一會.后來才發現.是static的原因.(
static變量屬于類變量,在這個類的所有 new出來的對象中只存在一個該變量,每個對象是對同一變量進行操作,static的變量和初始化塊僅僅運行一次。不象沒有static的變量,每次new的時候,都會重新初始化
。)因為static變量只初始化一次,之后使用的值都是之前的狀態值.所以我的問題就出在當運行正常時,運行時會把狀態改為true,結束后會把狀態改為false.但是出現異常時,后面就沒把狀態改成false.所以下次執行時就無法往下執行了. from:http://hi.baidu.com/xublog/blog/item/7f7d5bfc8f356381b901a0e7.html