我想将一个简单的FTPServer嵌入到我的单元测试中,以测试文件上传的FTP客户端功能。我尝试了Apache FTPServer(ftpserver-core-1.0.6.jar)。适用于Windows的UnitTest的嵌入式FTPServer:FileUpload 551错误
文件上传失败,
551 /C:/<correctDestinationPath>/myFile.txt: Error on output file.
这里我设置了服务器代码:
FtpServerFactory serverFactory = new FtpServerFactory();
BaseUser user = new BaseUser();
user.setName("anonymous");
user.setPassword(System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName());
user.setHomeDirectory(TEST_TARGET_DIR_LOCAL);
List<Authority> authorities = new ArrayList<Authority>();
authorities.add(new WritePermission());
user.setAuthorities(authorities);
UserManager userManager = serverFactory.getUserManager();
userManager.save(user);
myServer = serverFactory.createServer();
myServer.start();
这完全适用于连接和记录:
220 Service ready for new user.
USER *******
331 Guest login okay, send your complete e-mail address as password.
PASS *******
230 User logged in, proceed.
SYST
215 UNIX Type: Apache FtpServer
TYPE I
200 Command TYPE okay.
生产性代码如下所示调用FTPClient:
myFtpClient.storeFile("C:\<correctDestinationPath>\myFile.txt", anInputStream);
请注意,这是我的Windows机器上的正确路径。但FTPServer将其加扰为一个类似unix的路径“/C:/correctDestinationPath/myFile.txt”。
我怎样才能配置FTPServer,它也适用于Windows?单元测试本身当然应该是OS中立的。