jboss - Java apache FTPServer and common.net FTPClient -


i trying upload file on java ftpserver.

the file transfert ok, uploaded file have 6ko data.

i use embedded method launch ftpserver in ejb service bean needed application

here code use:

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;  /**  * session bean implementation class ftpserverservicelocal  */ @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();      // set port of listener     factory.setport(2221);       // replace default listener     serverfactory.addlistener("default", factory.createlistener());      // create new user     serverfactory.setusermanager(adduser("jboss", "azerty", "c:/tools"));      // start server     server = serverfactory.createserver(); }  @override public void start() throws exception  {     try {         server.start();     } catch (ftpexception e) {         e.printstacktrace();     } }  public void restart() throws exception {     try {         server.stop();         server.start();     } catch (ftpexception e) {         e.printstacktrace();     } }  @override public void stop()  {     try {         server.stop();     } catch (exception e) {         e.printstacktrace();     }        }  @override public void destroy() {     stop();     server = null;       }  public usermanager adduser(final string username, final string password, final string ftproot) {     propertiesusermanagerfactory usermanagerfactory = new propertiesusermanagerfactory();     usermanagerfactory.setfile(new file("c:/jbossusers.properties"));     usermanagerfactory.setpasswordencryptor(new saltedpasswordencryptor());     usermanager um = usermanagerfactory.createusermanager();      baseuser user = new baseuser();     user.setname(username);     user.setpassword(password);     user.sethomedirectory(ftproot);      list<authority> authorities = new arraylist<authority>();         authorities.add(new writepermission());             user.setauthorities(authorities);      try {         um.save(user);     } catch (ftpexception e) {         e.printstacktrace();     }     return um; } } 

and 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) {     /* initial context. default settings in file      * jndi.properties used.      * can explicitly set properties instead of using file.      */     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");         //system.out.println(beanremote.render("test"));         try {             ftpclient ftp = new ftpclient();             ftp.connect("localhost", 2221);             ftp.login("jboss", "azerty");             //ftp.enterlocalpassivemode();             //ftp.enterremotepassivemode();             ftp.setautodetectutf8(true);             string filename = "bug sheep 2.png";             ftp.storefile(filename, new fileinputstream("c:/"+filename));               ftp.logout();             ftp.disconnect();         } catch (socketexception e) {             // todo auto-generated catch block             e.printstacktrace();         } catch (ioexception e) {             // todo auto-generated catch block             e.printstacktrace();         }                }catch(namingexception e){         e.printstacktrace();     } } } 

i don't realy understand why transfert data size wrong.

also trace log of server contains no error.

11:52:28,548 info [org.apache.ftpserver.listener.nio.ftploggingfilter] created 11:52:28,549 info [org.apache.ftpserver.listener.nio.ftploggingfilter] opened 11:52:28,550 info [org.apache.ftpserver.listener.nio.ftploggingfilter] sent: 220 service ready 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 user name okay, need password 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 user logged in, proceed.

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 okay.

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] file uploaded /bug sheep 2.png 11:52:28,706 info [org.apache.ftpserver.listener.nio.ftploggingfilter] sent: 150 file status okay; open data connection.

11:52:28,706 info [org.apache.ftpserver.listener.nio.ftploggingfilter] sent: 226 transfer complete.

thanks help

i found solution. have set transfer type manually binary mode.

ftp.setfiletype(ftp.binary_file_type); 

Comments

Popular posts from this blog

c++ - Is it possible to compile a VST on linux? -

java - Output of Eclipse is rubbish -

jquery - Confused with JSON data and normal data in Django ajax request -