问题:JavaBean的一个写文件方法,独立调试正常。但移到Struts下,通过Action调用时,
抛出异常。
原因:文件路径问题解决方法:1.修改原来JavaBean里带前缀路径的文件---"resources/users.properties"为"users.properties"2.将struts框架下的源文件users.properties,直接移到src下3.重新编译,部署4.运行这个注册组件成功后,可以到$服务器主目录$/bin下,查看这个已经写过的users.properties文件以上问题,曾尝试将resources/user.properite改为绝对路径"d:/users.properties",或改为相对路径"/resources/properties",或直接向JavaBean中传入路径参数path,path=request.getRealPath("")(或request.getContextPath)等,均没有调试成功。故记录下来,希望其它网友遇到时,不必再做这样的重复劳动。附:1.Action中调用方法:UserDirectory.getInstance().setUser(userName,password1);2.JavaBean的缩略代码:UserDirectory.javaimport 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 阅读(1418) 评论(1) 编辑 收藏