I am trying to upload a file to java FTPServer.
File transfer is fine, but all downloaded files have 6ko extra data.
I use the built-in method to start FTPServer in the EJB bean service required for the application
Here is the code I'm using:
package com.cs3Drender.ftpservice; import java.io.File; import java.util.ArrayList; import java.util.List; import javax.ejb.Local; import org.apache.ftpserver.FtpServer; import org.apache.ftpserver.FtpServerFactory; import org.apache.ftpserver.ftplet.Authority; import org.apache.ftpserver.ftplet.FtpException; import org.apache.ftpserver.ftplet.UserManager; import org.apache.ftpserver.listener.ListenerFactory; import org.apache.ftpserver.usermanager.PropertiesUserManagerFactory; import org.apache.ftpserver.usermanager.SaltedPasswordEncryptor; import org.apache.ftpserver.usermanager.impl.BaseUser; import org.apache.ftpserver.usermanager.impl.WritePermission; import org.jboss.ejb3.annotation.Service; @Service @Local(FtpServerServiceLocal.class) public class FtpServerService implements FtpServerServiceLocal { private FtpServer server = null; @Override public void create() throws Exception { FtpServerFactory serverFactory = new FtpServerFactory(); ListenerFactory factory = new ListenerFactory();
And a simple client:
package client; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.net.SocketException; import java.util.Properties; import javax.naming.InitialContext; import javax.naming.NamingException; import org.apache.commons.net.ftp.FTPClient; import org.apache.commons.net.ftp.FTPFile; import com.cs3Drender.session.RenderSessionRemote; public class Client { public static void main(String[] args) { Properties properties = new Properties(); properties.put("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); properties.put("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); properties.put("java.naming.provider.url","localhost"); try { InitialContext context= new InitialContext(properties); RenderSessionRemote beanRemote=(RenderSessionRemote)context.lookup("RenderSession/remote");
I do not understand why the size of the transfer data is incorrect.
Also, the server trace log does not contain errors.
11: 52: 28,548 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] CREATED 11: 52: 28,549 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] OPEN 11: 52: 28,550 INFO [org.apache .ftpserver.listener.nio.FtpLoggingFilter] SENT: 220 Service is ready for a new user.
11: 52: 28,552 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] RECEIVED: USER jboss 11: 52: 28,553 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] SENT: 331 Username okay, required password for jboss.
11: 52: 28,553 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] RECEIVED: PASS * 11: 52: 28,561 INFO [org.apache.ftpserver.command.impl.PASS] Login Success - jboss 11: 52: 28,561 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] SENT: 230 The user is logged in, continue.
11: 52: 28,562 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] RECEIVED: PORT 127,0,0,1,12,190 11: 52: 28,563 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] SENT: 200 Command PORT is fine.
11: 52: 28,563 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] RECEIVED: STOR bug sheep 2.png 11: 52: 28,705 INFO [org.apache.ftpserver.command.impl.STOR] Uploaded files / bug sheep 2.png 11: 52: 28,706 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] SENT: 150 File status is OK; to open a data connection.
11: 52: 28,706 INFO [org.apache.ftpserver.listener.nio.FtpLoggingFilter] SENT: 226 Transfer completed.
thanks for the help