I found a solution to your problem first step:
you must deploy the application build a folder make sure you don't use
a directory which has any spaces in the path (such as the Program Files directory on Windows)as this may
cause the UserDirectoryException.
such as build a folder "myregister" in Driver D and copy the program in it.add the following codes to server.xml: </Context> <Context path="/myregister"
docBase="d:\myregister\"
crossContext="false"
debug="0"
reloadable="true" > <Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_dbtest_log." suffix=".txt"
timestamp="true"/> </Context> second step:
just find the following code within the 'UserDirectory.java'
public void setUser(String userId, String password) throws
UserDirectoryException { // no nulls
if ((null==userId) || (null==password)) {
System.out.print("userid is null");
throw new UserDirectoryException();
}
try { // conform userId to uppercase when stored
p.put(fixId(userId), password);
String o = this.getClass().getClassLoader().getResource(UserDirectoryFile).getFile();
p.store(new FileOutputStream(o), UserDirectoryHeader);
} catch (IOException e) {
throw new UserDirectoryException(); }
}
modify as follow:
public void setUser(String userId, String password) throws
UserDirectoryException { // no nulls
if ((null==userId) || (null==password)) {
System.out.print("userid is null");
throw new UserDirectoryException();
}
try { // conform userId to uppercase when stored
p.put(fixId(userId), password);
String o = this.getClass().getClassLoader().getResource(UserDirectoryFile).getFile();
System.out.println(o); //o is /D:/myregister/WEB-INF/classes/resources/users.properties
String ostr=o.substring(1); // the line must be add is to use to remove the "/" in String o
System.out.println(ostr); //ostr is D:/myregister/WEB-INF/classes/resources/users.properties
p.store(new FileOutputStream(ostr), UserDirectoryHeader);//modify o as ostr
} catch (IOException e) {
throw new UserDirectoryException(); }
}
by the way,the String o is /D:/myregister/WEB-INF/classes/resources/users.properties
the String ostr is D:/myregister/WEB-INF/classes/resources/users.properties你也可参考:(中文)
http://community.csdn.net/Expert/topic/4238/4238768.xml?temp=.8120386
you must deploy the application build a folder make sure you don't use
a directory which has any spaces in the path (such as the Program Files directory on Windows)as this may
cause the UserDirectoryException.
such as build a folder "myregister" in Driver D and copy the program in it.add the following codes to server.xml: </Context> <Context path="/myregister"
docBase="d:\myregister\"
crossContext="false"
debug="0"
reloadable="true" > <Logger className="org.apache.catalina.logger.FileLogger"
prefix="localhost_dbtest_log." suffix=".txt"
timestamp="true"/> </Context> second step:
just find the following code within the 'UserDirectory.java'
public void setUser(String userId, String password) throws
UserDirectoryException { // no nulls
if ((null==userId) || (null==password)) {
System.out.print("userid is null");
throw new UserDirectoryException();
}
try { // conform userId to uppercase when stored
p.put(fixId(userId), password);
String o = this.getClass().getClassLoader().getResource(UserDirectoryFile).getFile();
p.store(new FileOutputStream(o), UserDirectoryHeader);
} catch (IOException e) {
throw new UserDirectoryException(); }
}
modify as follow:
public void setUser(String userId, String password) throws
UserDirectoryException { // no nulls
if ((null==userId) || (null==password)) {
System.out.print("userid is null");
throw new UserDirectoryException();
}
try { // conform userId to uppercase when stored
p.put(fixId(userId), password);
String o = this.getClass().getClassLoader().getResource(UserDirectoryFile).getFile();
System.out.println(o); //o is /D:/myregister/WEB-INF/classes/resources/users.properties
String ostr=o.substring(1); // the line must be add is to use to remove the "/" in String o
System.out.println(ostr); //ostr is D:/myregister/WEB-INF/classes/resources/users.properties
p.store(new FileOutputStream(ostr), UserDirectoryHeader);//modify o as ostr
} catch (IOException e) {
throw new UserDirectoryException(); }
}
by the way,the String o is /D:/myregister/WEB-INF/classes/resources/users.properties
the String ostr is D:/myregister/WEB-INF/classes/resources/users.properties你也可参考:(中文)
http://community.csdn.net/Expert/topic/4238/4238768.xml?temp=.8120386
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货