Исключение шифрования Jasypt: исключение в потоке "main" java .lang.NoClassDefFoundError: org / jasypt / encryption / StringEncryptor - PullRequest
0 голосов
/ 30 января 2020

У меня есть простое консольное приложение java, где я использовал Jasypt1.9.2 для шифрования строки подключения к базе данных. Код отлично работает в Eclipse, но приложение, экспортированное как Jar, выдает эту ошибку enter image description here

Это мой простой Основной класс:

    public static void main (String args[])
 {
try {


            GetConnection config = new GetConnection();
            out = config.getLogFile();
            System.out.println("Start");
            Interface.writeLine(out, "Start");

            while (true) {
            new Interface().ProcessProcedure();
            new Interface().ProcessKTP();
            new Interface().TransferToPRF();
            System.out.println("End");



        Thread.sleep(90000);
            }



        }
        catch (java.lang.Exception ex) {
            System.out.println("Error:"+ex);
        }
    }

И это мой Класс GetConnection

public Connection getSql(BufferedWriter out){

        try{


                StandardPBEStringEncryptor encryptor = new StandardPBEStringEncryptor();       

                prop = new EncryptableProperties(encryptor);    //--fOR ENCRYPTED PASSWORD


                String fileName = System.getProperty("user.dir") + "\\configuration.properties";
                InputStream is = new FileInputStream(fileName);    



            //InputStream inputStream;



                if (is != null) {
                    prop.load(is);
                } else {
                    throw new FileNotFoundException("Configuration property not found");
                }


            String Driver =  prop.getProperty("sqlserver.driver");
            String url = prop.getProperty("sqlserver.durl");
            String id = prop.getProperty("sqlserver.uid");
            key = "123"                                                      
            encryptor.setPassword(key);                                     
            String sqlpass = prop.getProperty("sqlserver.pass").trim();


            Class.forName(Driver).newInstance();
            Connection conMSSQL = DriverManager.getConnection (url,id,sqlpass);




            if(conMSSQL != null && conMSSQL.isValid(0)) {

                GetConnection.writeLine(out,"Connection established");


            }
            return conMSSQL;
            }
            catch( Exception ex ){

                GetConnection.writeLine(out,"Exception at Kondor connection");  
                GetConnection.writeLine(out,ex.getMessage());


                return null;
            }


    }

Я проверил и подтвердил путь к классу для записи Jasypt1.9.2.jar. Пожалуйста, помогите в этом.

1 Ответ

2 голосов
/ 30 января 2020

NoClassDefFoundError означает, что JVM пыталась получить доступ к классу, но не нашла его.

Вы экспортировали свой проект в файл JAR без экспорта с ним зависимостей.

Выберите параметр package или repack при экспорте из eclipse.

Это добавляет зависимости в экспортируемый файл JAR.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...