问题: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.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 阅读(1506)
评论(1) 编辑 收藏