|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Писать так конечно можно, только есть это большое извращение... ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 13:13 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
А я писал, java компилятор запускается, но файл которого он запускает ничего не делает, у меня он должен был записать в текстовый файл что то, но он не сделал ничего. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 15:56 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
И к тому же разве нельзя сделать как нибудь так: Один раз запустишь компилятор а потом с изменением файлов он запускает эти файлы, но сам не перезапускается? ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 15:59 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
??? А в чем проблема сделать приложение, откомпилировать, оттестировать и запустить нормально, а не компилировать из приложения? Изгаляться конечно можно как угодно, но я не помню, чтобы, к примеру на С/Pascal при вызове, чекали исходник, если изменился, запускали компилятор, линковщик а затем через exec(...) получившийся exe-файл. java.exe - не компилятор, это рантайм. Компилятор - javac ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2004, 19:41 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Изянки, я имел ввиду что почему то у меня уже откомпилированный класс файл через прогу вызовом java рантайма не работает. Почему? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 06:00 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Написал ClassLoader, возникла такая проблема: 1.Class cl = Class.forName("TestModule", true, loader); Передает методу loader класс файл. Это когда и главнаый и файл которого по байтам будут читать находятся в одной папке. А так писать почему то незя: Class cl = Class.forName("C:/TestModule", true, loader); т.е когда файл находится в другой папке он сразу кричит: FileNotFoundException.... А как сделать чтобы он из любой папки запускал? И воаще я собраюсь из БД вытаскивать файл, он в байтовом массиве придет, а моя прога не только байтовый массив, даже из другой папки класс файл не может запустить, что за фигня? есть еще такой момент: ResultSet rs = stms.executQuery(select classfile from table1); ....допустим выводит так: while(rs.next) { System.out.println(rs.getBytes(1)); } СТОП!!! А как теперь все это добро которое вышло из таблицы присвоить к какой то перемекной притом массиву байтов? Как делается такая фигня? Допустим кто то подскажет как получить файл и пихнуть в байт массив, а прога то прога моя не примет байт массив, он токо класс файлы принимает. Кто что подскажет? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 13:08 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Если требуется динамическая загрузка классов, можно взять готовый контейнер, который ее поддерживает и писать для него компоненты-обработчики событий. Что-либо вроде phoenix справится вполне. 1. phoenix - что такое? 2. он работает под OS 390? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.09.2004, 14:18 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
А так писать почему то незя: Class cl = Class.forName("C:/TestModule", true, loader); т.е когда файл находится в другой папке он сразу кричит: FileNotFoundException.... А как сделать чтобы он из любой папки запускал? В classpath папку добавить из которой грузить файлы надо. СТОП!!! А как теперь все это добро которое вышло из таблицы присвоить к какой то перемекной притом массиву байтов? Как делается такая фигня? Метод ClassLoader.defineClass( ... ); 1. phoenix - что такое? 2. он работает под OS 390? Контейнер для объектов написанных на java с некоторыми полезными свойствами. Лежит на jakarta.apache.org. Сам не зпускал, но скорее всего работает, раз там java есть ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 00:15 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Правильно, я знаю что можно пользоватся этим: автор Метод ClassLoader.defineClass( ... ); Уже пользуюсь. Но если для того чтобы понять мою проблему все таки придется выставить весь код, аот он: Это код ClassLoader - а: Код: plaintext 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.
Класс Main: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
1. Main класс вызывает метод loader, ему передает класс файл через forName() А дальше что он делает? Кто нибудь опишите по коду DynamicClassOverLoader ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 06:41 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
надо написать прогу которая реагировала бы на изменение в таблице. Можно сделать бесконечный цикл который вечно проверяет таблицу. Но мне кажется это не решение. От такого цикла прога может заглючить, захлебнутся. Какаво ваше мнение? Как можно выйти из такой ситуации? Есть альтернативный вариант? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 08:25 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Это несложно. К примеру пусть у тебя каждый обработчик имплементирует общий интерфейс. Например: Код: plaintext 1. 2. 3. 4.
Поэтому в том месте где ты получил объект просто пишешь, с учетом того что все они имеют метод perform(...): Код: plaintext 1. 2. 3. 4. 5. 6. 7.
От бесконечного цикла прога конечно не загнется. Можешь job запускать через определенное время который будет это делать. Это все тоже от условий задачи зависит. Как часто нужно это запускать? Это real-time обработка или можно отложить выполнение на некоторое время? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2004, 17:52 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Это real-time. автор public interface MessageHandler { void perform(HandlerContext ctx) throws Exception; } ..... Object o = class.newInstance(); if (o instanceof MessageHanlder) { ((MessageHandler)o).perform(...); } .... Ивини, но я никогда этими не пользовался, если не трудно суть обясни, в чем заключается такое программирование? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 06:04 |
|
Вложенная Жава в DB2, возможно?
|
|||
---|---|---|---|
#18+
Хорошо. Вот простой пример ниже с указанными классами. Идея довольно простая - вызываешь класс Dispatcher с параметром - идентификатор транзакции. java Dispatcher 101 java Dispatcher 102 Класс читает настройки из текстового файла dispatcher.properties. В нем соответствие каждой транзакции поставлен обработчик. 101=ru.sql.forum.db2.Handler1 - означает что для транзакции 101 будет использован обработчик Handler1. И т.д. Соответственно если появляется новая транзакция - пишешь для нее класс и прописываешь в этом файле пару - ID<->класс обработчик. Просто каждый обработчик имплементрирует MessageHandler интерфейс - в нем и происходит обработка - просто ты знаешь что у класса есть метод perform который используется для обработки. HandlerContext - просто позволяет передать какие-то дополнительные параметры в обработчик (если нужно). По поводу непосредственно проверки что есть данные для обработки. Вы написали: Обработка будет как сказать обработка сообщении которые падают в концентратор а оттуда другая пога берет и заливает в таблицу, не давно написали прогу которая уже залитые в таблицу сообщения проверяют по конкретным параметрам(используя рег. выр) и заливает в еще другую таблицу. А в чем сложность из этого приложения нотифицировать диспптчер что появились новые данные для обработки? Это было бы проще всего - не надо сканировать таблицу в Db2. А способов нотификации много - просто посмотреть что лучше всего подойдет. Дальше как обычно вопросы: - эти проги на одной машине будут или на разных? и т.д. Это решаемо Код: plaintext 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. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2004, 17:02 |
|
|
start [/forum/search_topic.php?author=OldHot&author_mode=last_posts&do_search=1]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 684ms |
total: | 850ms |
0 / 0 |