Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Зависимости java в Oracle DB / 25 сообщений из 100, страница 1 из 4
01.08.2017, 13:38
    #39498366
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
Быть может в верной ветке пишу, кто его знает

В общем: как в вашем Java мире можно установить цепочку зависимостей?
вот допустим у меня есть Apache POI можно какими либо средствами получить цепочку, что в какой последовательности загружать? начиная от корня и заканчивая собственно poi-3.16.jar
...
Рейтинг: 0 / 0
01.08.2017, 13:41
    #39498369
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
maven, gradle?
...
Рейтинг: 0 / 0
01.08.2017, 14:12
    #39498403
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamond что в какой последовательности загружать?
Куда загружать и почему последовательность вдруг стала важна?
PsyDiamondначиная от корня и заканчивая собственно poi-3.16.jar
От корня чего?
...
Рейтинг: 0 / 0
01.08.2017, 14:35
    #39498427
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
Blazkowicz,
Куда загружать и почему последовательность вдруг стала важна?

Он имеет ввиду Загрузить в базу оракловую...
У него есть такая фича...загрузить java классы и можно вызывать методы из из pl/sq;
Т.е я смогу из оракловой процедуры сразу получить pdf...
Гл чтоб загрузить со всеми зависимостями...это ещё тот головняк.
(именно поэтому я этим не пользуюсь проще автономно на java написать а взаимодействовать через soket например)
...
Рейтинг: 0 / 0
01.08.2017, 14:45
    #39498433
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_al(именно поэтому я этим не пользуюсь проще автономно на java написать а взаимодействовать через soket например)
+1 микросервисы наше всё. Хоть через командную строку.
...
Рейтинг: 0 / 0
01.08.2017, 17:49
    #39498557
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
слова знакомые и хорошие попадаются, но суть пока что не улавливаю

Была вот задача - на основании данных собрать отчет в docx. Было принято решение использовать для решения Apache POI (ибо на чистом pl/sql я готового варианта не нашел, а изучив структуру xml - понял что руками писать будет неоправданно. не потому что сложно, а нужно было сделать гибко)
так вот с горем пополам я развернул в базу, сделал обёртки и всё работает замечательно. Но вот поступит мне задача - "нужно сделать у того клиента вот точно такой же функционал" и снова нетривиальная игра с зависимостями? ну это как то не профессионально что ли.
можно конечно N раз один тот же набор файлов деплоить и тогда всё встанет на свои места.

с этим то ладно, тут всё доволно легко пошло

деплоил я другие пакеты, например "fr.opensagres.xdocreport.converter.docx.xwpf" мало того что - это было сложнее, так и результаты различные обнаружились. Например, написал test под InteliJ Idea, настроенным на Java 1.6 - всё работает корректно, за разумное время, всё получается красиво. Задеплоил я в базу, где тоже 1.6 сидит - выполняется быстро, но pdf получается жутко косячный. Набор jar'ов подкинул один и тот же
...
Рейтинг: 0 / 0
01.08.2017, 17:52
    #39498560
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_alBlazkowicz,
Куда загружать и почему последовательность вдруг стала важна?

Он имеет ввиду Загрузить в базу оракловую...
У него есть такая фича...загрузить java классы и можно вызывать методы из из pl/sq;
Т.е я смогу из оракловой процедуры сразу получить pdf...
Гл чтоб загрузить со всеми зависимостями...это ещё тот головняк.
(именно поэтому я этим не пользуюсь проще автономно на java написать а взаимодействовать через soket например)

а пример можно, насчет сокетов?
а то для получения pdf пришлось через Runtime.getRuntime().exec(...) вызывать приложение на сервере. blob гонять в файла и обратно в blob
...
Рейтинг: 0 / 0
01.08.2017, 18:00
    #39498564
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
...
Рейтинг: 0 / 0
01.08.2017, 18:04
    #39498565
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
BlazkowiczPsyDiamond,

Что-нибудь вроде этого
https://apexplained.wordpress.com/2016/03/21/utl_http-and-a-multipartform-data-request-body/

а ну можно тогда начать с простого http://www.opencodez.com/oracle/oracle-pl-sql-programming-socket-connection.htm

теперь очень простой вопрос: как обернуть java апликацию в exe? а то запускать напрямую java чего_то_там - это здорово, но exe всё таки привычнее
...
Рейтинг: 0 / 0
01.08.2017, 18:09
    #39498566
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamondтеперь очень простой вопрос: как обернуть java апликацию в exe? а то запускать напрямую java чего_то_там - это здорово, но exe всё таки привычнее
какой такой exe? Apache Procrun наше всё.
...
Рейтинг: 0 / 0
01.08.2017, 18:25
    #39498576
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
BlazkowiczPsyDiamondтеперь очень простой вопрос: как обернуть java апликацию в exe? а то запускать напрямую java чего_то_там - это здорово, но exe всё таки привычнее
какой такой exe? Apache Procrun наше всё.

вот, то что надо. благодарю :)
...
Рейтинг: 0 / 0
01.08.2017, 18:34
    #39498585
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
но всё таки вопрос у меня остался, как минимум 1
если я нужные jar'ы всей кучей помещу все в один jar задеплою в базу - оно мне поможет?
...
Рейтинг: 0 / 0
01.08.2017, 19:44
    #39498614
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
jar внутри jar? Это не будет работать ни в базе, ни за её пределами.
Перособрать кучку jar-ов в один? Вполне возможно, но надо тестировать.
...
Рейтинг: 0 / 0
01.08.2017, 21:17
    #39498642
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamondirbis_alBlazkowicz,
пропущено...

Он имеет ввиду Загрузить в базу оракловую...
У него есть такая фича...загрузить java классы и можно вызывать методы из из pl/sq;
Т.е я смогу из оракловой процедуры сразу получить pdf...
Гл чтоб загрузить со всеми зависимостями...это ещё тот головняк.
(именно поэтому я этим не пользуюсь проще автономно на java написать а взаимодействовать через soket например)

а пример можно, насчет сокетов?
а то для получения pdf пришлось через Runtime.getRuntime().exec(...) вызывать приложение на сервере. blob гонять в файла и обратно в blob

В oracle есть такой пакет utl_tcp
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_tcp.htm#CEGDFJJE
он может организовать сокет.
1.В автономном java приложении организуете сокет.(У меня обычно java сервером сокета является)
2.В pl/sql процедуре вызываете utl_tcp...и обычно отправляется некоторые данные(у меня в xml) можно json
3.По этому xml java знает что делать.


Ваш случай ...на сколько я помню POI преобразует html в разные форматы.
1.Подготовили varchar2(Это текстовый оракловый тип(это для тех кто неораклист))
2.Кинули его(html) в сокет.
3.Ваша автономная приложуха сделала с ним что надо и далее либо вернула ораклу(как бинарный поток) либо(попроще) положила в папку...а папка прописана в oracle directory...и вернула в оракле толькр имя файла.ОН(оракле) зная где лежит файл организовывает бинарник(BFILE),Подмножество BLOB и далее работает с ним так же как если бы у Вас получилось все POI jar загрузить в оракле и обернуть их pl/sql процедурой.
...
Рейтинг: 0 / 0
02.08.2017, 05:25
    #39498736
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_alPsyDiamondпропущено...


а пример можно, насчет сокетов?
а то для получения pdf пришлось через Runtime.getRuntime().exec(...) вызывать приложение на сервере. blob гонять в файла и обратно в blob

В oracle есть такой пакет utl_tcp
https://docs.oracle.com/cd/B28359_01/appdev.111/b28419/u_tcp.htm#CEGDFJJE
он может организовать сокет.
1.В автономном java приложении организуете сокет.(У меня обычно java сервером сокета является)
2.В pl/sql процедуре вызываете utl_tcp...и обычно отправляется некоторые данные(у меня в xml) можно json
3.По этому xml java знает что делать.


Ваш случай ...на сколько я помню POI преобразует html в разные форматы.
1.Подготовили varchar2(Это текстовый оракловый тип(это для тех кто неораклист))
2.Кинули его(html) в сокет.
3.Ваша автономная приложуха сделала с ним что надо и далее либо вернула ораклу(как бинарный поток) либо(попроще) положила в папку...а папка прописана в oracle directory...и вернула в оракле толькр имя файла.ОН(оракле) зная где лежит файл организовывает бинарник(BFILE),Подмножество BLOB и далее работает с ним так же как если бы у Вас получилось все POI jar загрузить в оракле и обернуть их pl/sql процедурой.

первые 2 пункта не ясны немного
насчет docx у меня ситуация такая: я беру шаблон из базы (blob) заполняю его через POI, а затем выдаю обратно blob.
могу я через сокет передать blob в сторону java?
...
Рейтинг: 0 / 0
02.08.2017, 07:37
    #39498747
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamondну это как то не профессионально что ли
В базе с java мало кто работает.
Делают рядом с базой утилиту или веб сервер работающий совместно.
...
Рейтинг: 0 / 0
02.08.2017, 07:40
    #39498748
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_al,
Какой сокет, если есть jdbc?
...
Рейтинг: 0 / 0
02.08.2017, 08:09
    #39498753
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
Petro123irbis_al,
Какой сокет, если есть jdbc?
В случае jdbc действие инициируется клиентом.
А ему нужно чтоб действие инициировалось ораклом.
...
Рейтинг: 0 / 0
02.08.2017, 08:20
    #39498758
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
первые 2 пункта не ясны немного
насчет docx у меня ситуация такая: я беру шаблон из базы (blob) заполняю его через POI, а затем выдаю обратно blob.
могу я через сокет передать blob в сторону java?

Тогда

1.Взяли blob из базы.
2.Кинули его в сокет(вместе с данными заполнения...я бы рекомендовал xml,,,где blob-шаблон в base64 переведён...но тут сами думайте)....ваша прога обработала его.
2.Альтернативный...есть пакет utl_http...кинули его(blob шаблон с данными) http-requst запросом.
(В этом случае в Вашей проге должно быть embended(встроенный) http сервер типа grizzly ,jetty и т .д )

И эта схема будет работать быстрее(намного быстрее) нежели загруженный jar обёрнутый pl/sql процедурой.
...
Рейтинг: 0 / 0
02.08.2017, 08:25
    #39498761
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_alPetro123irbis_al,
Какой сокет, если есть jdbc?
В случае jdbc действие инициируется клиентом.
А ему нужно чтоб действие инициировалось ораклом.

А вообще в догонку...действительно,если Ваш основной язык java.(я просто думал это не Ваш основной язык(или же основная ИС неявовская) иначе то ,что я ниже перечисляю абсолютно тривиально и прямой путь)
1.Получаете блоб шаблона из базы.
2.Получаете данные из базы.
3.Скармливаете это всё POI получаете документ.
...
Рейтинг: 0 / 0
02.08.2017, 08:32
    #39498764
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_alPetro123irbis_al,
Какой сокет, если есть jdbc?
В случае jdbc действие инициируется клиентом.
А ему нужно чтоб действие инициировалось ораклом.
Он мало что о ЗАДАЧЕ ОТ ПОЛЬЗОВАТЕЛЯ говорил.
Чтобы сервер сам по себе pdf/docx собирал?
...
Рейтинг: 0 / 0
02.08.2017, 09:01
    #39498786
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
irbis_al,
Да. Я тоже подумал что он просто новенький java)
...
Рейтинг: 0 / 0
02.08.2017, 09:13
    #39498796
mad_nazgul
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamondслова знакомые и хорошие попадаются, но суть пока что не улавливаю

Была вот задача - на основании данных собрать отчет в docx. Было принято решение использовать для решения Apache POI (ибо на чистом pl/sql я готового варианта не нашел, а изучив структуру xml - понял что руками писать будет неоправданно. не потому что сложно, а нужно было сделать гибко)
так вот с горем пополам я развернул в базу, сделал обёртки и всё работает замечательно. Но вот поступит мне задача - "нужно сделать у того клиента вот точно такой же функционал" и снова нетривиальная игра с зависимостями? ну это как то не профессионально что ли.
можно конечно N раз один тот же набор файлов деплоить и тогда всё встанет на свои места.

с этим то ладно, тут всё доволно легко пошло

деплоил я другие пакеты, например "fr.opensagres.xdocreport.converter.docx.xwpf" мало того что - это было сложнее, так и результаты различные обнаружились. Например, написал test под InteliJ Idea, настроенным на Java 1.6 - всё работает корректно, за разумное время, всё получается красиво. Задеплоил я в базу, где тоже 1.6 сидит - выполняется быстро, но pdf получается жутко косячный. Набор jar'ов подкинул один и тот же

Зачем изобретать велосипед?!
"Все украдено до нас" (с) Операция Ы
Существует куча построителей отчетов, которые могут импортировать отчет практически в любой формат.
Например в мире Java пользуется определенной популярностью JasperReport.
Если не использовать JasperServer, то вещь бесплатная.
Для создание отчетов есть JasperStudio. По мне вещь не очень удобная, но работать можно.

Есть и другие построители отчетов, в т.ч. и у Oracle что-то есть свое, правда платное.
...
Рейтинг: 0 / 0
02.08.2017, 10:12
    #39498833
PsyDiamond
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
Petro123irbis_alпропущено...

В случае jdbc действие инициируется клиентом.
А ему нужно чтоб действие инициировалось ораклом.
Он мало что о ЗАДАЧЕ ОТ ПОЛЬЗОВАТЕЛЯ говорил.
Чтобы сервер сам по себе pdf/docx собирал?

да, в мире Java я крайне зелен.

вообщем есть клиент написанный то ли на Delphi, то ли на C++ Builder; далее есть база Oracle
так вот. Клиент делает вызов а-ля "Вот тебе идентификаторы отмеченных записей - собери мне отчет и отдай blob"

так что выжеизложенный способ с сокетами буду рассматиривать. Пока что собственно задача не совсем понятная: как определить какого объема blob принимать на стороне java

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Socket socket = listener.accept();
InputStream in = socket.getInputStream();
byte [] mybytearray  = new byte [FILE_SIZE];
                    int bytesRead = in.read(mybytearray, 0, mybytearray.length);
                    int current = bytesRead;

                    do {
                        bytesRead =
                                in.read(mybytearray, current, (mybytearray.length-current));
                        if(bytesRead >= 0) current += bytesRead;
                    } while(bytesRead > -1);
socket.close();



Код: plsql
1.
2.
3.
4.
5.
6.
WHILE offset_ < Dbms_Lob.GetLength(bTemplate) LOOP
        Dbms_Lob.Read (bTemplate, chunk_size_, offset_, file_chunk_);
        b := utl_tcp.WRITE_RAW(CONN, utl_encode.base64_encode(file_chunk_));
        offset_ := offset_ + chunk_size_;
    END LOOP;
 UTL_TCP.FLUSH(CONN);



в первом приближении как то так
...
Рейтинг: 0 / 0
02.08.2017, 10:24
    #39498840
irbis_al
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Зависимости java в Oracle DB
PsyDiamond,

FILE_SIZE Это константа...
Любая пусть будет 1024
По Вашему алгоритму пока не закончился блоп из базы читать в буфер 1024 байт и прибавлять этот маленький кусочек к большому куску(исходному явовскому blob)
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Зависимости java в Oracle DB / 25 сообщений из 100, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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