powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / wddx packet -> java classes
5 сообщений из 5, страница 1 из 1
wddx packet -> java classes
    #33018296
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
суть в том, что приходит wddx пакет в котором описываются струтура наподобие ассоциативного массива, например:
Код: plaintext
1.
2.
<wddxPacket version='1.0'><header/><data><struct><var name='php_class_name'><string>wddxcommand</string></var><var name='username'><string>vasyan kozlov</string></var>
</struct></data></wddxPacket>
после десериализации пакета с помощью:
Код: plaintext
1.
2.
        WddxDeserializer Des =  new  WddxDeserializer("org.apache.xerces.parsers.SAXParser");
        Object out = Des.deserialize(source);
на выходе out - всегда является Hashtable.
вопрос знает ли кто пользуется ли кто библиотеками выполняющими маппинг
такого wddx документа в классы java - в коде xml видно поле которое php_class_name - ему ставим в соответствие класс жабы и заполняем поля.

любой опыт использования жабы и wddx приветствуется, поделитесь опытом и примерами кода.
...
Рейтинг: 0 / 0
wddx packet -> java classes
    #33018478
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем пока суд да дело, кропаю преобразователь.

пара вопросов в догонку по жабе в общем.
предположим что у меня есть класс в общем виде bean (property, setProperty, getProperty)
необходимо распечатать его внутренне устройство в красивом виде с отступами, что за класс разумеется не известно.
...
Рейтинг: 0 / 0
wddx packet -> java classes
    #33018505
Фотография Pitbull terrier
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MyCoolBean.class.getDeclaredMethods()
.getDeclaredFields()
.getDeclaredConstructors()
...
Рейтинг: 0 / 0
wddx packet -> java classes
    #33018856
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в догонку еще вопрос вот фрагмент кода:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
                 Class  c =  Class .forName(php_class_name);
                o = c.newInstance();
                Method[] ms = c.getMethods();
.....
                    String key = elt_field.getAttributes().getNamedItem("name").getNodeValue();
                    Object val = JovarItXml(elt_field.getFirstChild());

                    String preparedPropertyName = key.toString().toLowerCase();
                    String firstLetter = preparedPropertyName.substring( 0 ,  1 ).toUpperCase();
                    preparedPropertyName = firstLetter + preparedPropertyName.substring( 1 );
                     for  ( int  r =  0 ; r < ms.length; r++) {
                        Method m = ms[r];
                         if  (m.getName().equals("set" + preparedPropertyName)) {
                            m.invoke(o, val);
// вот здесь самый прикол, при вызове инвокации если значение val == null то происходит исключение java.lang.IllegalArgumentException
// есть ли способ обойти эту проблему, дело в том, что не факт что после вызова конструктора свойство будет null и нужно будет присводить полю именно то значение которое пришло в пакете
                             break ;
                        }
                    }//for


см. коментарий и вопрос в нем.
...
Рейтинг: 0 / 0
wddx packet -> java classes
    #33018892
black zorro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отвечая сам себе, вот способ нормально вывести данные класса:
Код: plaintext
1.
2.
3.
4.
5.
       Document doc = b.parse(source);
        Object out2 = Jovar.JovarItXml(doc);
        FileOutputStream out =  new  FileOutputStream ("logger.xml");
        XMLEncoder encoder  =  new  XMLEncoder(out);
        encoder.writeObject(out2);
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / wddx packet -> java classes
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]