69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508

Could not find class 'javax.naming.directory.InitialDirContex­t'

14.07.2015, 16:39. Показов 2198. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Чувствую пятым чудом, что при попытке освоения Java «на живой» практике, не там и не так пытаюсь запустить коннект клиента к жаберу. ООП вводит мозг в конгнитивный диссонанс. с устоявшимися привычками.

Помогите нубу запустить smack на регистрацию.

Что не так и как с этим бороться?
Код компилится, запускается, в работе дает :
Could not find class 'javax.naming.directory.InitialDirContex t', referenced from method org.jivesoftware.smack.util.dns.javax.Ja vaxResolver.<clinit>
VFY: unable to resolve new-instance 7392 (Ljavax/naming/directory/InitialDirContext in Lorg/jivesoftware/smack/util/dns/javax/JavaxResolver;
VFY: replacing opcode 0x22 at 0x000c
Кажется все перерыл ответов очень мало и все мутные.
Что то иностранецы на импортных форумах написал один, мол это потому что процесс идет в ядре smask, второй что это вызывается в другом окружении, но толком не объясняют как с этим бороться, заканчивают на констатацией факта.
Что и на чем: Ubuntu, java 8, Android Studio 1.2.2, Smack 4.0.1

Что я делаю:

1. Из Активити вызываю startActivityForResult
2 получаю в onActivityResult логин, пароль, сервер Все проходит
3. Дергаю setJabberConfig в котором устанавливаю полученные данные как значение глобальных переменных.
4. Из setJabberConfig запускаю ранабл класс в котором нарисован коннект юзающий данные глобальных значений.

Коннект не проходит. Чувствую что наверно нужно дергать с другого конца. Ну типа из листнера какого или сервиса? Но как правильно это сделать не знаю.

Итак, предоставляю быдлокод начиная с шага 3.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
    super.onActivityResult(requestCode, resultCode, data);
 
    if (requestCode == TetGlobalData.JAB_LOGIN_ACTIVITY) {
        if (resultCode == RESULT_FIRST_USER) {
            /////////////////Эксперементы////////////////////
            android.util.Log.d("TetMainActivity", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!!  jabserver "  + data.getStringExtra("jabserver")+ " jabuser " + data.getStringExtra("jabuser") + " jabpassword "+data.getStringExtra("jabpassword") +" jabdisp "+data.getStringExtra("jabdisp")+"");
            //////////////////////////////////////////////////
            setJabberConfig tryjabberdlogin = new setJabberConfig(resultCode,data);
           //if (!tryjabberdlogin)
        }
        if (resultCode == RESULT_OK){
        }
        if (resultCode == RESULT_CANCELED) {
            //Write your code if there's no result
            //String jserver = data.getStringExtra("jabserver");
        }
        startService(new Intent(this, ProcessingService.class));
    }
}
Тут ставлю якобы «глобальные переменные».

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
public class setJabberConfig {
 
    //private static final Object JPORT = 5222;
    private String outcoming_message;
    private int RequestCode;
 
    private String jserver;
    private String juser;
    private String jpassw;
    private String jdisp;
    startFirstJaberLoging start;
    public setJabberConfig() {
    }
 
 
    public setJabberConfig(int resultCode, Intent data){
        synchronized (this) {
            RequestCode = resultCode;
            outcoming_message = null;
        }
        if ( resultCode == TetGlobalData.RESULT_FIRST_USER) {
            jserver = data.getStringExtra("jabserver");
            juser = data.getStringExtra("jabuser");
            jpassw = data.getStringExtra("jabpassword");
            jdisp = data.getStringExtra("jabdisp");
        } else {
            //SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getString());
        }
        TetGlobalData.JBS = jserver;
        TetGlobalData.JBU = juser;
        TetGlobalData.JBP = jpassw;
        TetGlobalData.JBC = jdisp;
        /////////////////Эксперементы////////////////////
        android.util.Log.d("setJabberConfig", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!!  jabserver "  +TetGlobalData.JBS+ " jabuser " + TetGlobalData.JBU + " jabpassword "+TetGlobalData.JBP +" jabdisp "+TetGlobalData.JBC+"");
        //////////////////////////////////////////////////
        start = new startFirstJaberLoging();
        start.run();
 
    }
Ну и наконец сам коннект.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
public class startFirstJaberLoging implements Runnable{
 
    AbstractXMPPConnection jConnection;
 
    public void startFirstJaberLoging(){
        new AndroidSmackInitializer().initialize();
        run();
    }
 
 
    public void login(String JABBERSERVER, int JABBERPORT, String JABBERDUSER, String JABBERDPASSWD)
            throws XMPPException {
        XMPPTCPConnectionConfiguration.Builder config = XMPPTCPConnectionConfiguration.builder();
        config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
        config.setUsernameAndPassword(JABBERDUSER + "@" + JABBERSERVER, JABBERDPASSWD);
        config.setServiceName(JABBERSERVER);
        //config.setHost(JABBERSERVER);
        config.setPort(JABBERPORT);
        config.setDebuggerEnabled(true);
        // config.setSocketFactory(SSLSocketFactory.getDefault());
        config.setSecurityMode(ConnectionConfiguration.SecurityMode.disabled);
        config.build();
        AbstractXMPPConnection jConnection = new XMPPTCPConnection(config.build());
        /////////////////Эксперементы////////////////////
        android.util.Log.d("startFirstJaberLoging", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!! Befor.connect " + JABBERSERVER + " jaberport " + JABBERPORT + " ");
        //////////////////////////////////////////////////
 
        try
 
        {
 
            jConnection.connect();
            /////////////////Эксперементы////////////////////
            android.util.Log.d("startFirstJaberLoging", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!!  after mConnection.connect " + JABBERSERVER + " jaberport " + JABBERPORT + " ");
            //////////////////////////////////////////////////
            if (!jConnection.isConnected()) {
                //If not connected
                /////////////////Эксперементы////////////////////
                android.util.Log.d("startFirstJaberLoging", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!! If not connected jabserver " + JABBERSERVER + " jaberport " + JABBERPORT + " ");
                //////////////////////////////////////////////////
            }
            /////////////////Эксперементы////////////////////
            android.util.Log.d("startFirstJaberLoging", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!! If connected OK but befor login jabserver " + JABBERSERVER + " jaberport " + JABBERPORT + " jabuser " + JABBERDUSER + " jabpassword " + JABBERPORT + " ");
            //////////////////////////////////////////////////
            jConnection.login();
            /////////////////Эксперементы////////////////////
            android.util.Log.d("startFirstJaberLoging", "!!!!!!!!!!!!!!!!! DEBUG DELETE AFTER ALL!!! If login OK jabserver " + JABBERSERVER + " jaberport " + JABBERPORT + " jabuser " + JABBERDUSER + " jabpassword " + JABBERPORT + "  ");
            //////////////////////////////////////////////////
        } catch (SmackException | IOException |
                XMPPException e
                )
 
        {
            System.out.println("Exception at SmackCcsClient.init()");
            e.printStackTrace();
        }
    }
 
    public void run() {
        try {
            android.util.Log.d("startFirstJaberLoging","jabber thread try to login");
            login(TetGlobalData.JBS, TetGlobalData.JPORT, TetGlobalData.JBU, TetGlobalData.JBP);
 
//            Thread jabberListenerThread=new Thread(new JabberListenerThread(connection));
//            jabberListenerThread.start();
//            Thread jabberSenderThread=new Thread(new JabberSenderThread(connection));
//            jabberSenderThread.start();
            //Data.tryLogin();
        } catch (XMPPException e) {
            e.printStackTrace();
//          this.stopSelf();
        }
    }
 
}
Добавлено через 23 часа 16 минут
Наконец загнав в депенсес всякую хрень от smack, клещами вытянул более или менее понятную инфу
Warningependency xpp3:xpp3:1.1.4c is ignored for debug as it may be conflicting with the internal version provided by Android.
trouble processing "javax/xml/namespace/QName.class":Ill-advised or mistaken usage of a core class (java.* or javax.*) when not building a core library. This is often due to inadvertently including a core library file in your application's project, when using an IDE (such as Eclipse). If you are sure you're not intentionally defining a core class, then this is the most likely explanation of what's going on.
Теперь просьба на пальцах объяснить кто такой jarjar и чем его запивают.

Ну, в смысле что ему и как скармливать.

Добавлено через 40 минут
Вот сижу и думаю, а не проще вообще грохнуть лишний QName.class ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.07.2015, 16:39
Ответы с готовыми решениями:

Ошибка javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter
Целый день немогу ошибку исправить. javax.naming.NoInitialContextException: Need to specify class name in environment or system...

Ошибка: cannot find symbol symbol: class toString location: class java.util.Date
import java.util.Date; import java.lang.String; import java.io.*; public class Sword { public static void main(String args)...

could not find the main class
Всем доброго времени суток есть такая проблема: запускаю приложение (бот для игры), а мне выдает ошибку could not find the main class...

4
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
14.07.2015, 21:25
Все просто, в android нет доступа к пакету javax.
Юзай smack 4.1+.
1
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
14.07.2015, 21:51  [ТС]
Поставил 4.1.2 Но тоже самое получил.
Путем научного тыка порешил удалить jar c кличкой smack-java7
Пошел коннект. Как к этому приполз уже не помню, столько эксперементировал, что забыл что как и когда вдруг получалось.

Но похоже до сервера не может добраться. Как ловить сообщение из NetworkOnMainThreadException

org.jivesoftware.smack.SmackException$Co nnectionException: The following addresses failed: 'brd.tet-a-tet.mobi:5222' failed because android.os.NetworkOnMainThreadException ?
07-14 18:45:00.814 26151-26151/mobi.tet_a_tet.atda W/System.err﹕ at org.jivesoftware.smack.SmackException$Co nnectionException: The following addresses failed: 'brd.tet-a-tet.mobi:5222' failed because android.os.NetworkOnMainThreadException
0
 Аватар для Netscape
374 / 361 / 52
Регистрация: 02.10.2009
Сообщений: 712
Записей в блоге: 4
14.07.2015, 22:09
zoleg, ну это просто. В отдельный поток вынести коннект.
http://habrahabr.ru/post/145092/
1
69 / 62 / 13
Регистрация: 10.01.2012
Сообщений: 508
14.07.2015, 22:36  [ТС]
Еще одно спасибо нажал.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
14.07.2015, 22:36
Помогаю со студенческими работами здесь

could not find the main class
Извените, что я задал такой примитивный вопрос.Но я хочу стартовать .Помогите мне в этом. Ошибка could not find the main class В cmd...

Ошибка javax.servlet.ServletException: Error instantiating servlet class myclasses.StudentServlet
Здравствуйте еще раз, выскочило исключение показанное ниже В класспатч добюавил библиотечку j2ee.jar но все равно ругается, в web.xml...

Exception: javax.script.ScriptException "Expected an operand but found class"
День добрый. Столкнулся с такой ошибочкой, при попытке создать класс. Не подскажите как починить?) Exception:...

Could not find or load main class
Задание необходимо выполнить без использования IDE (использую как редактор кода) Нужно выполнить казалось бы простенькое тело main() ...

Could not find or load main class
Всем привет. Начал постигать Java по книге Герберта Шилдта Java8 Java Руководство для начинающих Шестое издание И в первый же день на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
Последние результаты исследования от команды MCM (октябрь 2025 г.)
Programma_Boinc 29.10.2025
Последние результаты исследования от команды MCM (октябрь 2025 г. ) Поскольку мы продолжаем изучать гены, которые играют ведущую роль в развитии рака, в рамках проекта "Картирование раковых. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru