Создание сервиса
urban
06 Янв 2012
Собственно, в чем суть проблемы.
Я решил написать мод с нуля на Jimbot 0.4.0 pre 4.
В принципе все шло прекрасно, до того момента, пока я не решил протестировать создание сервисов.
Сам код по созданию сервисов я не трогал.
При создании вот такой Лог:
Имя сервиса: test
Вид сервиса: chat
Если данную ошибку кто то встречал, и исправил, подскажите как это сделать..
Да и в принципе если кто знает, подскажите, как сделать, что бы сервисы полноценно создавались..
Я решил написать мод с нуля на Jimbot 0.4.0 pre 4.
В принципе все шло прекрасно, до того момента, пока я не решил протестировать создание сервисов.
Сам код по созданию сервисов я не трогал.
При создании вот такой Лог:
Имя сервиса: test
Вид сервиса: chat
Скрытый текст
Если данную ошибку кто то встречал, и исправил, подскажите как это сделать..
Да и в принципе если кто знает, подскажите, как сделать, что бы сервисы полноценно создавались..
scano
06 Янв 2012
Боже, парень, лучше бы ты книжки пошёл читать.
PS. Исправив данную ошибку сразу после неё полезут другии. Пишите от себя, не дублируйте чужое.
Сообщение отредактировал scano: 06 Январь 2012 - 16:22
java.io.FileNotFoundException: .\services\test\test.xml (Системе не удается найти указанный путь) at java.io.FileInputStream.open(Native Method)Код пытается найти и принудительно (т.к. пропущено условие в коде) прочитать указанный файл, когда его на самом деле нет.
PS. Исправив данную ошибку сразу после неё полезут другии. Пишите от себя, не дублируйте чужое.
Сообщение отредактировал scano: 06 Январь 2012 - 16:22
urban
06 Янв 2012
Но ведь папка scripts все равно не создается...
Да он ищет этот файл.. Но зачем? поиск этого файла начинается при создании самого сервиса, в самом начале логов это видно, хотя вместо поиска и считывания данных он должен создать этот файл... А уже после создания пытаться его найти и читать
scano (06 Январь 2012 - 16:17) писал:
Боже, парень, лучше бы ты книжки пошёл читать.
PS. Исправив данную ошибку сразу после её полезут другии. Пишите от себя, не дублируйте чужое.
java.io.FileNotFoundException: .\services\test\test.xml (Системе не удается найти указанный путь) at java.io.FileInputStream.open(Native Method)Код пытается найти и принудительно (т.к. пропущено условие в коде) прочитать указанный файл, когда его на самом деле нет.
PS. Исправив данную ошибку сразу после её полезут другии. Пишите от себя, не дублируйте чужое.
Да он ищет этот файл.. Но зачем? поиск этого файла начинается при создании самого сервиса, в самом начале логов это видно, хотя вместо поиска и считывания данных он должен создать этот файл... А уже после создания пытаться его найти и читать
sanchez
06 Янв 2012
в стандартном боте 0.4,services.xml создается при сохранении настроек. Достаточно перед загрузкой конфига создать этот файл.
scano
06 Янв 2012
При создании сервиса происходит его инициализация - процесс подготовки объект в работе.
При обращении к файле настроек, прога не в способна действовать по условиям (есть файл или нет, что делать если false, а что выполнять при true), код чисто пытается загрузить настройки не взирая на обстоятельства, от суда и ошибки что файла нет.
Переписывай метод.
Можно всеми популярным вариантов воспользоваться.
При обращении к файле настроек, прога не в способна действовать по условиям (есть файл или нет, что делать если false, а что выполнять при true), код чисто пытается загрузить настройки не взирая на обстоятельства, от суда и ошибки что файла нет.
Переписывай метод.
sanchez (06 Январь 2012 - 16:42) писал:
в стандартном боте 0.4,services.xml создается при сохранении настроек. Достаточно перед загрузкой конфига создать этот файл.
} catch (Exception ex) { ex.printStackTrace(); Log.error("Error opening preferences: "); save(); // add method saved configure }только для меня это считается кривизной мозгов.
sanchez
06 Янв 2012
public void load() { try { File file = new File(PROPS_FILE); File dir = new File(PROPS_FOLDER); if(!dir.exists()){ dir.mkdirs(); } if(!file.exists()){ if(file.createNewFile()){ // файл создан } else { // err } return;// смысл грузить пустой файл } // остальная часть кода
Сообщение отредактировал sanchez: 06 Январь 2012 - 17:49
urban
06 Янв 2012
И все таки, почему бот начинает искать это файл при создании сервиса, не создав еще этот файл?
~ёМАё~
06 Янв 2012
urban (06 Январь 2012 - 20:16) писал:
И все таки, почему бот начинает искать это файл при создании сервиса, не создав еще этот файл?
Скрытый текст
ну почитаем логи и отследим весь путь ошибкиMainPage метод srvs_create_in в нем вызывается метод addService класса Manager,
который в свою очередь добавляет в хеш вновь созданный класс ChatServer
в конструкторе класса ChatServer мы можем увидеть строку
ChatProps.getInstance(name).load();собственно отсюда и начинается ошибка..в классе ChatProps вызывается метод загрузки конфигов которых ещё фактически нет..
достаточно добавить в метод getInstance или load проверку на наличие фйала и сохранение настроек поумолчанию и ошибки не будет
Сообщение отредактировал ~ёМАё~: 06 Январь 2012 - 20:39