Перейти к содержимому


Создание сервиса

Ошибка при создании сервиса

Сообщений в теме: 9

#1 urban

    Пользователь

  • Пользователи
  • PipPip
  • 50 сообщений
  • ГородОмск

Отправлено 06 Январь 2012 - 15:33

Собственно, в чем суть проблемы.
Я решил написать мод с нуля на Jimbot 0.4.0 pre 4.
В принципе все шло прекрасно, до того момента, пока я не решил протестировать создание сервисов.
Сам код по созданию сервисов я не трогал.
При создании вот такой Лог:
Имя сервиса: test
Вид сервиса: chat
Скрытый текст

Если данную ошибку кто то встречал, и исправил, подскажите как это сделать..
Да и в принципе если кто знает, подскажите, как сделать, что бы сервисы полноценно создавались..

#2 sanchez

    Новичок

  • Пользователи
  • Pip
  • 24 сообщений

Отправлено 06 Январь 2012 - 16:04

Сохрани настройки в админке

#3 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 06 Январь 2012 - 16:17

Боже, парень, лучше бы ты книжки пошёл читать.
java.io.FileNotFoundException: .\services\test\test.xml (Системе не удается найти указанный путь)
at java.io.FileInputStream.open(Native Method)
Код пытается найти и принудительно (т.к. пропущено условие в коде) прочитать указанный файл, когда его на самом деле нет.
PS. Исправив данную ошибку сразу после неё полезут другии. Пишите от себя, не дублируйте чужое.

Сообщение отредактировал scano: 06 Январь 2012 - 16:22


#4 urban

    Пользователь

  • Пользователи
  • PipPip
  • 50 сообщений
  • ГородОмск

Отправлено 06 Январь 2012 - 16:22

Но ведь папка scripts все равно не создается...

Просмотр сообщенияscano (06 Январь 2012 - 16:17) писал:

Боже, парень, лучше бы ты книжки пошёл читать.
java.io.FileNotFoundException: .\services\test\test.xml (Системе не удается найти указанный путь) at java.io.FileInputStream.open(Native Method)
Код пытается найти и принудительно (т.к. пропущено условие в коде) прочитать указанный файл, когда его на самом деле нет.
PS. Исправив данную ошибку сразу после её полезут другии. Пишите от себя, не дублируйте чужое.

Да он ищет этот файл.. Но зачем? поиск этого файла начинается при создании самого сервиса, в самом начале логов это видно, хотя вместо поиска и считывания данных он должен создать этот файл... А уже после создания пытаться его найти и читать

#5 sanchez

    Новичок

  • Пользователи
  • Pip
  • 24 сообщений

Отправлено 06 Январь 2012 - 16:42

в стандартном боте 0.4,services.xml создается при сохранении настроек. Достаточно перед загрузкой конфига создать этот файл.

#6 scano

    Профи

  • Пользователи
  • PipPipPipPipPip
  • 571 сообщений
  • ГородМосква

Отправлено 06 Январь 2012 - 16:50

При создании сервиса происходит его инициализация - процесс подготовки объект в работе.
При обращении к файле настроек, прога не в способна действовать по условиям (есть файл или нет, что делать если 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
	    }
только для меня это считается кривизной мозгов.

#7 sanchez

    Новичок

  • Пользователи
  • Pip
  • 24 сообщений

Отправлено 06 Январь 2012 - 17:48

	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


#8 urban

    Пользователь

  • Пользователи
  • PipPip
  • 50 сообщений
  • ГородОмск

Отправлено 06 Январь 2012 - 20:16

И все таки, почему бот начинает искать это файл при создании сервиса, не создав еще этот файл?

#9 ~ёМАё~

    Профи

  • Специалисты
  • PipPipPipPipPip
  • 816 сообщений
  • ГородТамбовская обл.

Отправлено 06 Январь 2012 - 20:32

Просмотр сообщенияurban (06 Январь 2012 - 20:16) писал:

И все таки, почему бот начинает искать это файл при создании сервиса, не создав еще этот файл?
Скрытый текст
ну почитаем логи и отследим весь путь ошибки
MainPage метод srvs_create_in в нем вызывается метод addService класса Manager,
который в свою очередь добавляет в хеш вновь созданный класс ChatServer
в конструкторе класса ChatServer мы можем увидеть строку
ChatProps.getInstance(name).load();
собственно отсюда и начинается ошибка..в классе ChatProps вызывается метод загрузки конфигов которых ещё фактически нет..
достаточно добавить в метод getInstance или load проверку на наличие фйала и сохранение настроек поумолчанию и ошибки не будет

Сообщение отредактировал ~ёМАё~: 06 Январь 2012 - 20:39


#10 urban

    Пользователь

  • Пользователи
  • PipPip
  • 50 сообщений
  • ГородОмск

Отправлено 08 Январь 2012 - 13:54

Спасибо. Думаю тема исчерпана.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 скрытых пользователей