Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?
Октября 20, 2021, 08:51:17 pm
Начало Помощь Поиск Войти Регистрация
Новости:

Transaq  |  СБО "Transaq"  |  TRANSAQ Connector  |  Topic: Java class « предыдущая тема следующая тема »
Страниц: [1] Печать
Автор Тема: Java class  (Прочитано 480 раз)
Sharx
Newbie
*
Сообщений: 2


Просмотр профиля Email
« : Января 13, 2021, 12:37:12 am »

Всем привет!
Меня зовут Азат.
Есть ли у кого реализация класа на Java?
Есть сложность в написании с нуля такой реализации с коннектором. Поиски в рунете пока не привели к положительным результатам. Завис над Jni, и откуда брать все методы которые должны быть в dll, как я понял, только то, что описано в мануале по коннектору. Судя по всему придется описывать каждый метод. Или достаточно отправить запрос в dll с названием метода и из колбека полученное парсить?
Я боюсь что своими силами потрачу на это уйму времени, в связи с отсутствием какого либо описания на Java
Возможно уже кто-то с толкнулся со связкой.
Заранее спасибо!
Записан
vdprs
Newbie
*
Сообщений: 1


Просмотр профиля Email
« Ответ #1 : Января 19, 2021, 10:42:33 am »

Копать для Java можно в этом направлении - https://bitbucket.org/belbix/finam/src/master/
( обсуждалось здесь https://forum.finam.ru/posts/t12827-Ispol-zovanie-txmlconnector-dll-v-JAVA ).

Да, объявление функций библиотеки в сопровождающем файле к библиотеке.

Прочие примеры для ознакомления (помимо примера тут https://www.finam.ru/howtotrade/tconnector/ ):
1. https://github.com/novikovag/TXCProxy - на Си, использовал год примерно для сбора данных, ломается на подаче заявки, бросил использовать (дело не в библиотеке транзак, а в реализации этого коннектора).
2. https://github.com/roma-guru/transaq_connector - на Питоне.
3. https://github.com/ivanantipin/transaqgrpc - обертка на C#, есть пример подключения к ней клиента на Java.
4. https://github.com/kmlebedev/txmlconnector - на Go.

В итоге я написал свой велосипед, обертку на C++ Qt, похожий на TXCProxy, подключение к нему - tcp, построчный вывод xml без обработки, обрабатываю уже внешними приложениями, свою обертку запускаю под wine (Linux), так как логика уже пишется отдельно под запуск сразу на Linux.
Понял один нюанс (что в общем то и упомянуто в документации) - когда приходит колбэк с xml данными надо в отдельном потоке собирать их в FIFO/массив/итд, так как даже вызов обработки в основном потоке из колбэка приводит к частичной потере данных, нужно как можно быстрее выйти из колбэка, далее уже разбирать накопленный FIFO/массив/итд в основном потоке. Так получилось у меня.
« Последнее редактирование: Января 19, 2021, 10:54:41 am от vdprs » Записан
Sharx
Newbie
*
Сообщений: 2


Просмотр профиля Email
« Ответ #2 : Апреля 12, 2021, 09:45:46 pm »

Спасибо! Очень помогло. Реализация Jni на bitbucket, не оправдала надежд. Тк там использовался для получения pData[] byte тип. Возможно это адресация недовала получать данные более чем 5000 символов. Остальное обрезается. По какой то причине толи изза ошибки в обертки толи изза того же типа в xml приходят нулевые байты на которых ломается парсер. Пришлось пре проверять на входе валидность xml. В колбэке заявленный Utf8 не давал русские символы тоже пришлось пере индексировать.
В итоге с нуля прреписал на jna с типом string. Проблема с utf8 тоже ушла.
Единственный вопрос в обоих реализациях это как использовать freemem. Вылетает в любых в начинаниях на данную операцию, задебажить не знаю как(.
Нет ясноти необходимо ли это использовать или нет. Пока работаю без freemem. Проект пока не запущен на полный сбор тиков. Поэтому пока не знаю как это повлияет на резервную память.  Можно ли это делать из разных потоков?
Записан
Страниц: [1] Печать 
Transaq  |  СБО "Transaq"  |  TRANSAQ Connector  |  Topic: Java class « предыдущая тема следующая тема »
Перейти в:  


Войти

Powered by MySQL Powered by PHP Powered by SMF 2.0.10 | SMF © 2006-2008, Simple Machines LLC Valid XHTML 1.0! Valid CSS!