Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
java приложение
|
|||
|---|---|---|---|
|
#18+
хочю работать с cache на java 1. создал в cache класс Class User.PIF Extends (%Persistent, %Populate, %XML.Adaptor) [ ClassType = persistent ] 2. Создал java класс public class TPIF extends Persistent { private static String CACHE_CLASS_NAME = "User.PIF"; public TPIF (Database db) throws CacheException { super (((SysDatabase)db).newCacheObject (CACHE_CLASS_NAME)); } public TPIF (CacheObject ref) throws CacheException { super (ref); } } 3. Создал соеденение Database dbconnection = null; String url="jdbc:Cache://localhost:1972/TEST"; String username="_SYSTEM"; String password="sys"; dbconnection = CacheDatabase.getDatabase (url, username, password); 4. Хочю создать екземпляр класа User.PIF Sample.TPIF pif = null; pif = new Sample.TPIF( dbconnection ); вот на этом месте летит ексепшин: com.intersys.objects.CacheException: Unable to find Java class for Cache class User.PIF caused by: java.lang.ClassNotFoundException: User.PIF at com.intersys.cache.AbstractCacheClass.setJavaClass(AbstractCacheClass.java:87) at com.intersys.cache.AbstractCacheClass.getJavaClass(AbstractCacheClass.java:64) at com.intersys.cache.AbstractCacheClass.verifyClass(AbstractCacheClass.java:206) at com.intersys.cache.jbind.JBindDatabase.newCacheObject(JBindDatabase.java:1018) at Sample.TPIF.<init>(TPIF.java:12) at exl.LoadPIF.main(LoadPIF.java:31) Вопрос почему он его не находит?!?! Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 14:09 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
А как Вы создавали Java-класс? Неужели вручную? У Вас класс в Caché называется "User.PIF", в Java он уже "TPIF" (какой пакет?), и, наконец, в коде Вы обращаетесь к нему, как "Sample.TPIF". В Ваш Caché-класс добавьте проекцию, например: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 16:17 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
дорогой товарищ. спасибо тебе! за то что направил безтолкового. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2008, 18:20 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
почему после того как я вставил новое отражение для класса он перестал компилится и не генерит java класс? Compilation started on 03/01/2008 03:45:05 Compiling class User.TPerson .................. Compiling table SQLUser.TPerson ... Compiling table SQLUser.TPerson_MobilePhone ... Compiling routine User.TPerson.1 Compiling routine User.TPerson.2 Compiling routine User.TPerson.3 ERROR #6632: Class User.TPerson is not up-to-date. Please recompile the class and try again. ERROR #6632: Class User.TPerson is not up-to-date. Please recompile the class and try again. Errors detected during compilation. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 18:34 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
почему вот стаким методом проекция не строится? Query IsNumberExists(Seria As %String, Number As %String) As %SQLQuery(CONTAINID = 1) { SELECT ID, CardNumber, Person->FirstName, Person->FirstName, Person->SecondName, Person->MiddleName, (Person->Home->IDStreet->Name || ' д.' || Person->Home->House || ' корп.' || Person->Home->Box || ' кв.' || Person->Home->Apartment) As StreetName FROM TPersonCard WHERE UPPER(Person->Passport->Seria) = UPPER(:Seria) AND Person->Passport->Number = :Number } что в нем такого особеного? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.02.2008, 19:25 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
1) Попробуйте принудительно перекомпилировать класс или весь проект. Вот еще ссылка на похожую проблему: Устаревание классов 2) А какая ошибка возникает? На генерацию проекции должны влиять только сигнатуры метода/запроса, но не их код. У меня и с более сложным кодом запросов все генерируется нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2008, 09:01 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
servit1) Попробуйте принудительно перекомпилировать класс или весь проект. Вот еще ссылка на похожую проблему: Устаревание классов 2) А какая ошибка возникает? На генерацию проекции должны влиять только сигнатуры метода/запроса, но не их код. У меня и с более сложным кодом запросов все генерируется нормально. по ссылке проблема не та... ошибку привел выше... без создания проекции компелируется... удалил этот метод, добавил дериктиву создания проекции - скомпелировался и создал проекцию. В чем проблема не понимаю... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2008, 19:55 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
Как же не та, сами приводите авторRROR #6632: Class User.TPerson is not up-to-date. Please recompile the class and try again. ERROR #6632: Class User.TPerson is not up-to-date. Please recompile the class and try again. То есть проблема устаревания класса. Если решите этот вопрос с IS, сообщите сюда ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 05:53 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
To Блок А.Н. : Я компилирую в версии 2008.1.RC1 в Studio в рамках проекта с параметрами "cukfv-o" и ни разу не встречался с такой ошибкой. Не могли бы Вы привести пример соотвествующих классов? Лучше в изначальной ветке. To rehsinup : Если классов в проекте много и они сложные, при этом реализация меняется часто, а каркас класса - редко, то рекомендую генерировать проекцию по необходимости - сэкономите время. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 10:04 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
to servit К сожалению, нет. Проблема в WRC (зависла), решали на уровне пересылки логов, абстрактно. Классы передать разрешения не получил (от своих), демо-проблему построить не получилось. Так что проблема пока просто висит. У меня в первоначальной проблеме были нескомпилированы абстракные классы $system.OBJ.CompileAll("'cf") без флага "s" их как оказалось не компилил, и получалось, что абстрактные классы были старее системных, поэтому все производное от них автоматически устаревало. Но даже после этого если классов много и они очень сильно друг друга используют, любое изменение или даже просто компилляция класса приводит к устареванию почти всех остальных. Можно конечно компилировать с флагами ry, но перекомпилировать каждый раз весь проект не очень радует. Проблема создать демо проблему (как ни странно) в том, что у каше какая-то защита от этого есть. На трех-четырех классах каше разбирается в том, что от чего зависит, но один раз как-то подавилась, повторить пример не получилось, как не пытался. Пока обходимся удалением глобала oddDEP. Флагом u не пользуюсь, наоборот "-u" делаю обязательно. Были случаи, когда каше ошибочно решало, что компиляция не нужна. "v" тоже не раз подводила, больше не применяю. Если пользователи работают, компилить нельзя. Как правило, компилирую гораздо больше одного класса, в это время сохранить работоспособность сервера с какие-то ни было ключами по-моему, не получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 11:13 |
|
||
|
java приложение
|
|||
|---|---|---|---|
|
#18+
rehsinupпочему вот стаким методом проекция не строится? Query IsNumberExists(Seria As %String, Number As %String) As %SQLQuery(CONTAINID = 1) { SELECT ID, CardNumber, Person->FirstName, Person->FirstName, Person->SecondName, Person->MiddleName, (Person->Home->IDStreet->Name || ' д.' || Person->Home->House || ' корп.' || Person->Home->Box || ' кв.' || Person->Home->Apartment) As StreetName FROM TPersonCard WHERE UPPER(Person->Passport->Seria) = UPPER(:Seria) AND Person->Passport->Number = :Number } что в нем такого особеного? Потому что в момент компиляции этого запроса необходим уже скопилированный User.TPerson... оссобенно некрасиво получается если внутри User.TPerson так же есть некие статические запросы по таблице User.PIF... иногда помагает включение рекурсивной компиляции... (r) В другом случае во первых можно поставить в User.PIF в свойстве CompileAfter = User.TPerson, или заменить статический запрос на динамический ... Последнее поможет скорее всего... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2008, 12:38 |
|
||
|
|

start [/forum/topic.php?fid=39&msg=35164237&tid=1558971]: |
0ms |
get settings: |
9ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
63ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 270ms |
| total: | 451ms |

| 0 / 0 |
