java जावा कोड में कॉमन्स-नेट FTPSClient त्रुटि



ssl apache-commons-net (1)

मेरा क्लासपाथ कॉमन्स-नेट जार फ़ाइल के पुराने संस्करणों की ओर इशारा करता था।

मैं पहली बार के लिए कॉमन्स-नेट पैकेज का उपयोग कर रहा हूं और SSL के ऊपर FileZilla सर्वर से फ़ाइल को फाइल करने के लिए नीचे कोड का उपयोग कर रहा हूं। जब मैं प्रोग्राम चलाता हूं तो मुझे एक त्रुटि का सामना करना पड़ रहा है कोड में क्या गलत है?

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintWriter;
import org.apache.commons.net.PrintCommandListener;
import org.apache.commons.net.ftp.FTP;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPSClient;

public class CommonsNetFTPSTest {
public static void main(String[] args) throws Exception {
    System.setProperty("javax.net.debug", "ssl");

    String server = "XXX.XXX.XXX.XXX";
    String username = "USER_TEST";
    String password = "ABCD1234";
    String remoteFile = "/Data/Input/PH240819";
    String localFile = "PH240819";
    String protocol = "SSL"; // TLS / null (SSL)
    int port = 990;
    int timeoutInMillis = 10000;
    boolean isImpicit = true;

    FTPSClient client = new FTPSClient(protocol, isImpicit);

    client.setDataTimeout(timeoutInMillis);
    client.addProtocolCommandListener(new PrintCommandListener(new  PrintWriter(System.out)));

    System.out.println("################ Connecting to Server ################################");

    try
    {
        int reply;
        System.out.println("################ Connect Call ################################");
        client.connect(server, port);

        client.login(username, password);

        System.out.println("################ Login Success ################################");

        //client.setFileType(FTP.BINARY_FILE_TYPE);
        client.setFileType(FTP.NON_PRINT_TEXT_FORMAT);
        client.execPBSZ(0);  // Set protection buffer size
        client.execPROT("P"); // Set data channel protection to private
        client.enterLocalPassiveMode();

        System.out.println("Connected to " + server + ".");
        reply = client.getReplyCode();

        if (!FTPReply.isPositiveCompletion(reply))
        {
            client.disconnect();
            System.err.println("FTP server refused connection.");
            System.exit(1);
        }

        client.listFiles();
        boolean retrieved = client.retrieveFile(remoteFile, new FileOutputStream(localFile));
    }
    catch (Exception e)
    {
        if (client.isConnected())
        {
            try
            {
                client.disconnect();
            }
            catch (IOException ex)
            {
                ex.printStackTrace();
            }
        }
        System.err.println("Could not connect to server.");
        e.printStackTrace();
        return;
    }
    finally
    {
        //client.disconnect();
        client.logout();
        System.out.println("# client disconnected");
    }
}
}

त्रुटि नीचे है-

main, WRITE: SSLv3 Handshake, length = 56
main, READ: SSLv3 Change Cipher Spec, length = 1
JsseJCE:  Using cipher RC4 from provider TBD via init
CipherBox:  Using cipher RC4 from provider from init IBMJCE version 1.2
JsseJCE:  Using MessageDigest MD5 from provider IBMJCE version 1.2
main, READ: SSLv3 Handshake, length = 56
*** Finished
verify_data:  { 7, 71, 60, 4, 21, 222, 78, 66, 166, 137, 172, 57, 64, 131, 115, 89, 94, 128, 164, 80, 172, 124, 246, 14, 224, 91, 88, 128, 21, 44, 149, 161, 130, 112, 250, 11 }
***
cached session [Session-1, SSL_RSA_WITH_RC4_128_MD5]
%% Cached client session: [Session-1, SSL_RSA_WITH_RC4_128_MD5]
Exception in thread "main" java.lang.NullPointerException
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:441)
    at org.apache.commons.net.ftp.FTPSClient.sendCommand(FTPSClient.java:535)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:520)
    at org.apache.commons.net.ftp.FTP.sendCommand(FTP.java:569)
    at org.apache.commons.net.ftp.FTP.quit(FTP.java:781)
    at org.apache.commons.net.ftp.FTPClient.logout(FTPClient.java:706)
    at CommonsNetFTPSTest.main(CommonsNetFTPSTest.java:85)

ऐसा लगता है कि यह उस बिंदु से आगे नहीं जा रहा है जहां लॉगिन कहा जाता है। उपयोगकर्ता आईडी और पासवर्ड सभी सही है। मेरे पास एक SSL प्रमाणपत्र है जो मुझे FileZilla सर्वर की मेजबानी करने वाले लोगों द्वारा और ओपनएसएसएल का प्रयोग करके प्रमाणपत्र को निकालने के बाद दिया गया था, मैंने इसे नीचे अपने आदेश में जावा / jre / lib / security / cacerts में स्थापित किया है-

keytool -import -alias "cert" -file certfile.txt -keystore /usr/java5/jre/lib/security/cacerts

मैं अभी भी त्रुटि के कारण को निर्धारित करने में सक्षम नहीं हूँ त्रुटि पाठ से पहले निष्पादन लॉग के अनुसार, ऐसा लगता है कि यह सफलतापूर्वक जोड़ता है और हाथ मिलाता है, लेकिन उसके बाद कुछ गलत हो जाता है। मैं एक यूनिक्स बॉक्स (एएक्स 5.3) से प्रोग्राम चला रहा हूं, जो क्लाइंट मशीन है I

मदद!





apache-commons-net