Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Preferences, entry не подтягивает. 
V
    Опции темы
chief39
Дата 21.2.2006, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



ребят, взгляните с "сапогами надетыми на свежую голову", а то хожу вокруг да около.
Нашлёпал программулину, поработала, валялась себе без дела...
И вот сегодня она мне вновь понадобилась...
Запускаю я её и вижу что из преференсов она не подбирает значения...
Почему-то... Никто вроде не трогал.. но. Не пашет.
вот такие преференсы:
Код

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE preferences SYSTEM "http://java.sun.com/dtd/preferences.dtd">
<preferences>
<root type="user">
 <map />
 <node name="com" >
  <map />
  <node name="ubs" >
   <map />
   <node name="netflow" >
   <map />
     <node name="generator" >
      <map>


       <!-- NetFlow generator config file -->

       <!-- time to work in miliseconds -->
       <entry key="TimeToWork" value="180000000" />

       <!--"maximal number of users" value="5000" -->
       <entry key="MaxUsers" value="12000" />

       <!-- packets to send per second for random generator with fixed rate -->
       <entry key="PacketsPerSecond" value="60" />

       <!-- address of netflow collector -->
       <entry key="CollectorAddress" value="10.10.0.99" />

       <!-- port on which collector is listen -->
       <entry key="CollectorPort" value="9996" />

       <!-- file name with list of possible IP addresses of client -->
       <entry key="IpAddressesFname" value="etc/_ip_list.dat" />

       <!-- file where write output (summary bytes sended) -->
       <entry key="SummaryOutputFname" value="output.txt" />

      </map>

    </node>
   </node>
  </node>
 </node>
</root>
</preferences>


код:
Код


        File file = new File(prefsFname);
        FileInputStream prefsStream;
        prefsStream=new FileInputStream(prefsFname);
        try{
            Preferences.importPreferences(prefsStream);
        }finally{
            prefsStream.close();
        }

и потом
Код

Preferences prefs = Preferences.userNodeForPackage(NetFlowEmulator.class);
        System.out.println(">>>" + prefs.absolutePath());
        maxUsers = prefs.getInt("MaxUsers", 5000);
        timeToWork = prefs.getInt("TimeToWork", 5000);
        float packetsPerSecond = prefs.getFloat("PacketsPerSecond", 1);
        System.out.println("PPS setup=" + packetsPerSecond);
        setPacksPerSec(packetsPerSecond);
        collectorAddress = prefs.get("CollectorAddress","127.0.0.1");
        collectorPort = prefs.getInt("CollectorPort", 12345);
        ipAddressesFname = prefs.get("IpAddressesFname", "etc/IP.txt");
        summaryOutputFname = prefs.get("SummaryOutputFname", "output.txt");
        showFlows = prefs.get("ShowFlows", "False").equals("True");

        System.out.println("collectorPort="+collectorPort);
        System.out.println("collectorAddress="+collectorAddress);
        System.out.println("ipAddressesFname="+ipAddressesFname);

Всё кошерно, файл у него exist, но ВСЕ get'ы не отрабатывают. Вернее берут по умолчанию значение. Понимаю что смотрю на новые ворота, но какого чёрта они перестали открываться - не пойму. Бага как всегда под ногами, но её как всегда не видно. Хоть подтолкните к нужной калитке smile

jdk 1.4.2 , fedora core 4, файл для рида разрешён всем.



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 21.2.2006, 18:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Класса NetFlowEmulator.class у меня нет, но так:
Код
Preferences prefs = Preferences.userRoot().node("/com/ubs/netflow/generator");
...

Все работает.

Ты уверен что Preferences.importPreferences(prefsStream); проходит без ошибок, а то ты там можешь получить exception и даже не узнать об этом.

Кстати ты вначале создаешь File file = new File("some.xml");, а потом сам же его и не используешь.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 21.2.2006, 18:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Код

File file = new File(prefsFname);
        if(file.exists()) System.out.println("FILE EXISTS!!!");
        FileInputStream prefsStream;
        prefsStream=new FileInputStream(prefsFname);
        try{
            Preferences.importPreferences(prefsStream);
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            prefsStream.close();
        }

Файл есть. эксепшнов нету smile

Цитата(LSD @ 21.2.2006, 18:03 Найти цитируемый пост)
Кстати ты вначале создаешь File file = new File("some.xml");, а потом сам же его и не используешь.

Это после меня дописывали, не виноват. smile

Вот так:
Код

Preferences prefs = Preferences.userRoot().node("/com/ubs/netflow/generator");

тоже самое.... что и было smile
Чертовщина какая-то...
Ведь работало, никто не трогал с последнего запуска исходники... smile
Просто не находит.



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 21.2.2006, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Таки давайте ужо посмотрим, що там вообще е smile
Код
public static void main(String[] args) throws Exception
{
  Preferences pref = Preferences.userRoot();
  printSubtree(pref, "");
}

private static void printSubtree(Preferences pref, String indent) throws BackingStoreException
{
  System.out.println(indent + "[" + pref.name() + "]");
  String[] childs = pref.childrenNames();
  for(int i = 0; i < childs.length; i++)
    printSubtree(pref.node(childs[i]), indent + "  ");
  String[] keys = pref.keys();
  for(int i = 0; i < keys.length; i++)
    System.out.println(indent + keys[i] + " = " + pref.get(keys[i], "<<undefined>>"));
}



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 22.2.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(LSD @ 21.2.2006, 20:47 Найти цитируемый пост)
Таки давайте ужо посмотрим, що там вообще е

Вот то-то и оно что ничего из энтрисов! smile

Если твоим субтри - тогда
Код

  []
    [com]
      [ubs]
        [netflow]
          [generator]


Слушай... у мня тут подлая мысль закралась... Какой-то левый симбол не мог это всё покерить? Может он отлавливает что-то непонятное и на все энтрисы забивает?
Сейчас попробую программно сей файл создать и записать на диск.






--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 22.2.2006, 13:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(chief39 @ 22.2.2006, 13:05 Найти цитируемый пост)
Слушай... у мня тут подлая мысль закралась... Какой-то левый симбол не мог это всё покерить? Может он отлавливает что-то непонятное и на все энтрисы забивает?

Формат XML правильный, у меня то все импортировалось нормально. Если только какая местная федорина трабла.

А вообще под Linux куда Preferences сохраняются? Там ручками пошарить нельзя?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 22.2.2006, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(LSD @ 22.2.2006, 13:18 Найти цитируемый пост)
А вообще под Linux куда Preferences сохраняются? Там ручками пошарить нельзя?

То есть??? В файл smile Или я в вопрос не вкатился. Там ручками частенько и шарили. Это ж для настройки софтины специально втулили - вот ручками числа и меняли. Поэтому я и думаю насчёт "левых символов".
Потому что править могли и вием и миднайтом и жэдитом и кэдитом откуда ни попадя. Сейчас заново пересоздам файлу.
Добавлено @ 13:36
Цитата(LSD @ 22.2.2006, 13:18 Найти цитируемый пост)
федорина трабла.

Я уже на неё всё свалить готов. Она меня так часто подставляла, что.... smile
50% траблов из сферы ответственности моих корявых рук перекочевали в сферу федориных корявых байт smile Но пока поищу трабл в своих и чужих руках. Федора напоследок smile


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
chief39
Дата 22.2.2006, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



LSD, вопрос решился.
Создал програмно эти префы и слил в файл. Теперь видит.
Уже не знаю что за симбольчики, и какая програмулина их туда, и чьими ручками...
Спасибо большое.

ЗЫ: огромная польза форума в том, что тебя подгоняет мысль: вон люди мой код третируют и находят решения тебе, хотя им это совсем ни к чему, а я тут сижу и туплю. В НЕОГРАНИЧЕННЫХ КОЛИЧЕСТВАХ smile


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 22.2.2006, 14:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(chief39 @ 22.2.2006, 13:33 Найти цитируемый пост)
То есть??? В файл  Или я в вопрос не вкатился. Там ручками частенько и шарили. Это ж для настройки софтины специально втулили - вот ручками числа и меняли. Поэтому я и думаю насчёт "левых символов".

Не, я говорил о an implementation-dependent backing store. Т.е. когда ты пишешь Preferences.importPreferences() ты переносишь настройки из файла в это самое backing store, в виндах это реестр, а вот под Linux не знаю.

Кстати а некошерный файлик у тебя сохранился? Если его сравнить c новым и попробовать прогнать на нем валидацию по DTD каким нибудь XML парсером?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 22.2.2006, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(LSD @ 22.2.2006, 14:19 Найти цитируемый пост)
Кстати а некошерный файлик у тебя сохранился?

Нэа... smile Убил скотину насмерть. Минут десять назад буквально.
а) чтоб не путался
б) отомстил ему малость

Цитата(LSD @ 22.2.2006, 14:19 Найти цитируемый пост)
Не, я говорил о an implementation-dependent backing store. Т.е. когда ты пишешь Preferences.importPreferences() ты переносишь настройки из файла в это самое backing store, в виндах это реестр, а вот под Linux не знаю.

Трудно сказать....
Накопал в /etc/.java/.systemPrefs
два файлика:
.system.lock
.systemRootModFile
Но они пусты, как моя голова.
Запускал прожку, чтоб подтянула преференсы - они всё равно пустые.
А в памяти сиё храниться не может?




--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
LSD
Дата 22.2.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: 210
Всего: 538



Цитата(chief39 @ 22.2.2006, 16:35 Найти цитируемый пост)
А в памяти сиё храниться не может?

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

Под виндами за хранение настроек отвечает класс WindowsPreferences, и по нему можно понять где они храняться. Может что подобное и в Linix-е есть?


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
chief39
Дата 22.2.2006, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(LSD @ 22.2.2006, 16:43 Найти цитируемый пост)
Нет кончено, это же персистентные настройки. Вообще говоря, то что вы их постоянно импортируете из файла, это не правильно. По идее их надо один раз загрузить, а дальше они уже будут храниться в системе.

Они меняются через файл. Надо каждый раз из файла подтягивать свежие.

Хм... только что проверил... запустил с файлом - они есть...
Потом файлоподтяжку закоммитил - все геты взяли дефолты. Не нашли то бишь в системе.
Интересно.



--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
chief39
Дата 5.5.2006, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


карманная тигра
***


Профиль
Группа: Участник Клуба
Сообщений: 1631
Регистрация: 20.5.2005
Где: Киев

Репутация: 15
Всего: 77



Цитата(LSD @  22.2.2006,  16:43 Найти цитируемый пост)
Под виндами за хранение настроек отвечает класс WindowsPreferences, и по нему можно понять где они храняться. Может что подобное и в Linix-е есть? 


Есть такое.  Вспомнил что тема была - решил поделиться smile

в хоум папке лежит .java
в ней .userPrefs
а в ней понеслось дерево каталогов:
каждая папка - нод.
Причём в каждой папке есть файлик prefs.xml
Его содержимое - мапа ентрисов для данного нода(содержащей его папки)
Код

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE map SYSTEM 'http://java.sun.com/dtd/preferences.dtd'>

<map MAP_XML_VERSION="1.0">
  <entry key="pur.contract.id" value="3" />
  <entry key="pur.customer.id" value="1" />
  <entry key="pur.end.date" value="1121158658773" />
  <entry key="pur.generator.generation.amount" value="1" />
  <entry key="pur.generator.generation.interval" value="1" />
  <entry key="pur.generator.total.amount" value="1" />
  <entry key="pur.service.id" value="1" />
  <entry key="pur.start.date" value="1121158535773" />
</map>


Почему тогда у меня не импортило - сейчас не скажу, не помню. Как опять доберусь - скажу. 


--------------------
Люди - это свечи. Они либо горят, либо их - в жопу!(с)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1166 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.