問題:JavaBean的一個寫文件方法,獨立調(diào)試正常。但移到Struts下,通過Action調(diào)用時,
拋出異常。
原因:文件路徑問題
解決方法:
1.修改原來JavaBean里帶前綴路徑的文件---"resources/users.properties"
為"users.properties"
2.將struts框架下的源文件users.properties,直接移到src下
3.重新編譯,部署
4.運行這個注冊組件成功后,可以到$服務(wù)器主目錄$/bin下,查看這個已經(jīng)寫過的
users.properties文件
以上問題,曾嘗試將resources/user.properite改為絕對路徑"d:/users.properties",
或改為相對路徑"/resources/properties",或直接向JavaBean中傳入路徑參數(shù)path,
path=request.getRealPath("")(或request.getContextPath)等,均沒有調(diào)試成功。
故記錄下來,希望其它網(wǎng)友遇到時,不必再做這樣的重復勞動。
附:
1.Action中調(diào)用方法:
UserDirectory.getInstance().setUser(userName,password1);
2.JavaBean的縮略代碼:
UserDirectory.java
import java.io.IOException;
import java.io.FileOutputStream;
import java.util.Enumeration;
import java.util.Properties;
public class UserDirectory {
private static final String UserDirectoryFile = "users.properties";
private static final String UserDirectoryHeader = "${user}=${password}";
public static UserDirectory getInstance() throws UserDirectoryException {
if (null == userDirectory) {
userDirectory = new UserDirectory();
}
return userDirectory;
}
public void setUser(String userId, String password) throws
UserDirectoryException {
if ( (null == userId) || (null == password)) {
throw new UserDirectoryException();
}try {
p.put(fixId(userId), password);
p.store(new FileOutputStream(UserDirectoryFile),UserDirectoryHeader);
}catch (IOException e) {
throw new UserDirectoryException();
}
}
}
posted on 2005-09-07 13:39
my java 閱讀(1511)
評論(1) 編輯 收藏