LINUX.ORG.RU

Сообщения bvn13

 

По какому порту стучится встроенный VPN клиент в Android?

Форум — General

Вчера убил вечер пытаясь настроить себе ВПН-сервер для хождения с телефона. По локалке - подключается, извне - нет. Ошибок, соответственно, никаких нет в этом Андроиде, только «сбой».

Предполагаю, что нужен какой-то порт.

Сервер - SoftEtherVPN, порты слушает 992, 1194, 5555. Порты в роутере пробросил, есесна. Поэтому и непонятки.

Я в замешательстве...

Есть мысли? Как быть? Перепробовал с десяток каких-то смутных клиентов с ПлейМаркета. Ни в какую.

ЗЫ. ОС - Manjaro

 , , ,

bvn13
()

OpenSource ESB советов тред

Форум — General

Настало время подумать над апгрейдом Adroit Logic UltraESB... и понять, что нет желания платить 10k$ ежегодно. Но у них такова политика.

Поэтому хочу спросить совета аудитории. Кто что посоветует? Кто что использует, какие подводные камни?

 esb

bvn13
()

Как заставить SpringBoot не кешировать файлы в static?

Форум — Development

Два проекта в IDEA: один - SpringBoot как бэк, второй - ReactJS (сборка Webpack) как фронт. В конфиге webpack указан путь для сборки - в подпапку в static бэка.

Хочу при сборке фронта, чтобы запущенный бэк начинал отдавать на запросы bundle.js уже новый файл. Сейчас этого можно добиться только перезапуском бэка.

Код

@Configuration
@EnableWebMvc
public class MvcConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**")
                .addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS)
                .setCacheControl(CacheControl.maxAge(0, TimeUnit.SECONDS));
    }

}

не помогает, хотя в браузере видно, что файл не грузится из кеша. Но это браузерный кеш, а как отключить кеширование в самом SpringBoot?

 , ,

bvn13
()

JAX-WS. Как быть, если сервер требует авторизации для получения wsdl?

Форум — Development

Классы генерятся с помощью

<plugin>
  <groupId>org.apache.cxf</groupId>
  <artifactId>cxf-codegen-plugin</artifactId>
  <executions>
    <execution>
<!-- ... -->
      <goals>
        <goal>wsdl2java</goal>
      </goals>
    </execution>
  </executions>
</plugin>

Когда я держал wsdl локально, то тут проблем нет:

public static ExchangeMonitorPortType makeProxy_fromFile(Bases_1c base1c) throws Exception {
        // auth while getting wsdl
        // https://stackoverflow.com/questions/22407994/jax-ws-client-cannot-authenticate

        //URL url = new URL(base1c.getWsWsdl());
        URL url = new URL("classpath:wsdl/ExchangeMonitorWS.wsdl");

        QName qname = new QName(base1c.getWsUrl(), base1c.getWsService());
        Service service = Service.create(url, qname);
        ExchangeMonitorPortType proxy = service.getPort(ExchangeMonitorPortType.class);
        BindingProvider prov = (BindingProvider)proxy;
        prov.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, base1c.getWsUser());
        prov.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, base1c.getWsPass());

        return proxy;
    }

Но когда я поменял порт на сервере, то клиент (этот код) перестал коннектится.

Если включить URL url = new URL(base1c.getWsWsdl());, то Service service = Service.create(url, qname); ловит эксепшен 401 Not Authenticated.

Подскажите, как правильно его авторизовать? Везде примеры авторизации уже после чтения wsdl.

Можно ли обойтись без сохранения wsdl в файлы, как описано в https://stackoverflow.com/questions/22407994/jax-ws-client-cannot-authenticate ?

 , , , jax-ws,

bvn13
()

ОС на Rikomagic MK802II

Форум — Linux-install

Господа, есть что-то свежее на сабжевую железяку-свисток? Это которая эта. Образы lubuntu лежат в сети аж 12.* релиза. Мне его не удалось обновить даже до 14.

Может, кто-то собирал сам? Или какие-нибудь bsd-системы?

PS. В тегах треш, но даже не знаю, как скастовать иначе нужную аудиторию.

 , , , ,

bvn13
()

как сменить шрифт в conky в Manjaro-i3?

Форум — Desktop

а то как-то непонятно https://i.imgur.com/6mxFhS4.png

 ,

bvn13
()

FlyWayDB - оно вообще живое?

Форум — Development

Пытаюсь разобраться в сабжевой утилите.

Настроил через Maven - все работает: создаю новый файл с изменениями структуры, mvn flyway:migrate, все хорошо.

Но вот захотелось мне на работающей таким образом базе сделать проверки при запуске приложения. И тут...


    public static void makeMigration(String folder, String jdbc, String username, String pass) {
        // Create the Flyway instance
        Flyway flyway = new Flyway();


        flyway.setLocations(String.format("filesystem:%s", folder));

        // Point it to the database
        flyway.setDataSource(jdbc, username, pass);

        //flyway.setBaselineOnMigrate(true);
        // Start the migration
        flyway.migrate();
    }

Если делаю flyway.migrate();, то:

org.flywaydb.core.api.FlywayException: Found non-empty schema(s) "public" without metadata table! Use baseline() or set baselineOnMigrate to true to initialize the metadata table.

Если включаю flyway.setBaselineOnMigrate(true); или делаю flyway.baseline();, то:

org.postgresql.util.PSQLException: ОШИБКА: отношение "schema_version" уже существует

Так что ему надо?

 , ,

bvn13
()

Специалистам WEB: Ищу глобальное событие document

Форум — Development

Есть ajax запрос, по результатам которого выполняется

//...
success: function(data) {
   $('#ajax-content').html(data);
},
//...

Вопрос: на это изменение DOM какое-нибудь событие генерится?

 , ,

bvn13
()

jOOQ + JPA в одном проекте - возможно ли?

Форум — Development

Есть проект с JPA. Сейчас его нужно хорошенько допилить. Желания дальше работать через JPA нет. Хочется jOOQ. Можно ли до момента полного замещения JPA на jOOQ использовать их совместно к одной БД (с транзакциями) в одном проекте?

Проект SpringBoot.

База для JPA и jOOQ будет одна и та же. На jOOQ уже используются новые таблицы (было реализовано в тестовом отдельном проекте, где нет JPA)

 , , , ,

bvn13
()

Java, чтение Excel-файлов - посоветуйте библу

Форум — Development

Сейчас использую


        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>3.16</version>
        </dependency>
        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>3.16</version>
        </dependency>

вот такой класс-читальщик, который нашел на просторах инета

import org.apache.poi.ss.usermodel.*;

import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * Created by bvn13 on 01.07.2017.
 */
public class ExcelReader {

    public static List<List<String>> readSpreadSheet(InputStream inputStream, Integer sheetNum) {
        Workbook workBook = null;
        try {
            workBook = WorkbookFactory.create(inputStream);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        Sheet sheet = workBook.getSheetAt(sheetNum);
        List<List<String>> rowHolder = new ArrayList<List<String>>();
        int cellNum = sheet.getRow(1).getLastCellNum();

        for (int i = 0; i <= sheet.getLastRowNum(); i++) {
            Row row = sheet.getRow(i);
            List<String> cellHolder = new ArrayList<String>();

            for (int j = 0; j < row.getLastCellNum(); j++) {
                Cell cell = row.getCell(j);
                String cellValue = parseCellValue(workBook, cell);
                cellHolder.add(cellValue);
            }

            //add empty cells to the end if required
            while (cellHolder.size() < cellNum) {
                cellHolder.add(null);
            }
            rowHolder.add(cellHolder);
        }
        return rowHolder;
    }

    private static String parseCellValue(Workbook workBook, Cell cell) {
        FormulaEvaluator evaluator = workBook.getCreationHelper().createFormulaEvaluator();
        String cellValue = null;
        if (cell != null) {
            switch (cell.getCellTypeEnum()) {
                case STRING:
                    cellValue = cell.getRichStringCellValue().getString();
                    break;
                case NUMERIC:
                    if (DateUtil.isCellDateFormatted(cell)) {
                        cellValue = cell.getDateCellValue().toString();
                    } else {
                        cellValue = new Double(cell.getNumericCellValue()).toString();
                    }
                    break;
                case BOOLEAN:
                    cellValue = new Boolean(cell.getBooleanCellValue()).toString();
                    break;
                case FORMULA:
                    cellValue = evaluator.evaluate(cell).formatAsString();
                    break;
            }
        }
        return cellValue;
    }

    public static List<List<String>> readSpreadSheetWOnull(InputStream inputStream, Integer sheetNumber) {
        Workbook workBook = null;
        try {
            workBook = WorkbookFactory.create(inputStream);
            Sheet sheet = workBook.getSheetAt(sheetNumber);

            Iterator<Row> rowIter = sheet.rowIterator();

            List<List<String>> rowHolder = new ArrayList<List<String>>();
            while (rowIter.hasNext()) {
                Row row = (Row) rowIter.next();
                Iterator<Cell> cellIter = row.cellIterator();

                List<String> cellHolder = new ArrayList<String>();
                while (cellIter.hasNext()) {
                    Cell cell = (Cell) cellIter.next();
                    String cellValue = parseCellValue(workBook, cell);
                    cellHolder.add(cellValue);
                }
                rowHolder.add(cellHolder);
            }
            return rowHolder;
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
    }

    public static List<List<String>> readSpreadSheetWOnull(InputStream inputStream) {
        return readSpreadSheetWOnull(inputStream, 0);
    }
    public static List<List<String>> readSpreadSheet(InputStream inputStream) {
        return readSpreadSheet(inputStream, 0);
    }
}

Если подсунуть 10-меговый файл, то даже на моем i7 8Gb вылетает с ошибкой:

Exception in thread "ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker" java.lang.OutOfMemoryError: GC overhead limit exceeded
	at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.getNodeObject(DeferredDocumentImpl.java:1017)
	at com.sun.org.apache.xerces.internal.dom.DeferredDocumentImpl.synchronizeChildren(DeferredDocumentImpl.java:1755)
	at com.sun.org.apache.xerces.internal.dom.DeferredElementNSImpl.synchronizeChildren(DeferredElementNSImpl.java:158)
	at com.sun.org.apache.xerces.internal.dom.ParentNode.getFirstChild(ParentNode.java:229)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1402)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.loadNodeChildren(Locale.java:1403)
	at org.apache.xmlbeans.impl.store.Locale.loadNode(Locale.java:1445)
	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1385)
	at org.apache.xmlbeans.impl.store.Locale.parseToXmlObject(Locale.java:1370)
	at org.apache.xmlbeans.impl.schema.SchemaTypeLoaderBase.parse(SchemaTypeLoaderBase.java:370)
	at org.apache.poi.POIXMLTypeLoader.parse(POIXMLTypeLoader.java:144)
	at org.openxmlformats.schemas.spreadsheetml.x2006.main.WorksheetDocument$Factory.parse(Unknown Source)
	at org.apache.poi.xssf.usermodel.XSSFSheet.read(XSSFSheet.java:183)
	at org.apache.poi.xssf.usermodel.XSSFSheet.onDocumentRead(XSSFSheet.java:175)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.parseSheet(XSSFWorkbook.java:438)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead(XSSFWorkbook.java:403)
	at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:190)
	at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:266)
	at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:185)
	at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:144)
	at ru.bvn13.priceprocessor.utils.ExcelReader.readSpreadSheet(ExcelReader.java:18)
	at ru.bvn13.priceprocessor.utils.ExcelReader.readSpreadSheet(ExcelReader.java:102)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.readFileNewExcelFormat(PriceLoaderFromFileWorker.java:409)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.loadFile(PriceLoaderFromFileWorker.java:294)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.startLoadingFile(PriceLoaderFromFileWorker.java:206)
	at ru.bvn13.priceprocessor.workers.PriceLoaderFromFileWorker.job(PriceLoaderFromFileWorker.java:96)
	at ru.bvn13.priceprocessor.workers.AbstractWorker.run(AbstractWorker.java:52)

А есть что-то менее прожорливое, чтобы читать?

 ,

bvn13
()

PyBackuper. Бекапим на Yandex-Диск.

Новости — Open Source
Группа Open Source

Открываю проект в open-source

Тестируется и эксплуатируется в настоящий момент на Windows для MS SQL

Предназначение: хранение всех файлов бекапов на Yandex-диске в каталогах, названных согласно текущих (на момент отправки) даты и времени, автоматическая чистка старых файлов на Yandex-диске.

Утилита может работать в двух режимах:
1. Режим слежения
2. Режим ручного запуска

В режиме слежения утилита следит за изменениями файлов в указанных в настройках каталогах и отправляет их в Yandex-диск. Доступ к аккаунту Yandex-диск также указывается в настройках. Перед отправкой файла происходит чистка старых каталогов на Yandex-диске.

В режиме ручного запуска утилита копирует определенный пользователем бекап на Yandex-диск.

При появлении файла в одном из отслеживаемых каталогов утилита, запущенная службой в режиме backuper.py watcher -s с помощью nssm, происходит создание каталога вида YYYYMMDD / HHmm на Yandex-диске (корень возможно указать в настройках). В этот каталог копируется найденный файл. В настройках указано максимальное хранение файлов 250 дней. Перед копированием каждого файла происходит удаление каталогов YYYYMMDD старше 250 дней.

PS. Буду рад предложениям.

>>> GitHub

 , , ,

bvn13
()

Вьюхи с материализацией

Форум — Development

Создал сабж.

CREATE MATERIALIZED VIEW public.ping_pong_state AS 
 SELECT pp1.base_1c_id,
    pp1.maxdatetime AS datetime,
    pp2.ping,
    pp2.pong,
    pp2.total
   FROM ( SELECT ping_pong.base_1c_id,
            max(ping_pong.datetime) AS maxdatetime
           FROM ping_pong
          GROUP BY ping_pong.base_1c_id) pp1
     JOIN ping_pong pp2 ON pp1.base_1c_id = pp2.base_1c_id AND pp1.maxdatetime = pp2.datetime
WITH DATA;

При выдергивании данных из этой вьюхи, такое ощущение, что она отдает не срез последних, а какие-то старые данные.

Кто может прокомментировать? ЧЯДНТ?

 

bvn13
()

Добавляю тег

Форум — General

 

bvn13
()

ActiveMQ, JMX API - повторная отправка сообщений в очередь

Форум — Development

Други! Пытаюсь понять что с чем едят, читая маны.
Правильно ли я понимаю, что можно только повторно отправить сообщение в очередь, указав id сообщения, но нельзя «просто отправить сообщение в очередь», используя JMX?

 , ,

bvn13
()

Странная проблема при старте JavaFX8

Форум — Development
>java -Xmx1024m -jar PriceProcessor-1.6.5-jar-with-dependencies.jar
log4j:WARN Continuable parsing error 2 and column 22
log4j:WARN Document root element "log4j:configuration", must match DOCTYPE root "null".
log4j:WARN Continuable parsing error 2 and column 22
log4j:WARN Document is invalid: no grammar found.
ru_RU
Done
WorkerManager: start workers
WorkerManager: 3 workers started
Worker ru.bvn13.priceprocessor.workers.UploadStatusesCheckerWorker@959709, initial delay 15 sec.
Exception in Application start method java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at com.sun.javafx.application.LauncherImpl.launchApplicationWithArgs(LauncherImpl.java:389)
        at com.sun.javafx.application.LauncherImpl.launchApplication(LauncherImpl.java:328)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:917)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$155(LauncherImpl.java:182)
        at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ArrayIndexOutOfBoundsException: -1
        at java.util.ArrayList.elementData(Unknown Source)
        at java.util.ArrayList.get(Unknown Source)
        at com.sun.javafx.collections.ObservableListWrapper.get(ObservableListWrapper.java:89)
        at com.sun.javafx.collections.VetoableListDecorator.get(VetoableListDecorator.java:306)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.layoutChildren(TextAreaSkin.java:276)
        at javafx.scene.Parent.layout(Parent.java:1087)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Parent.layout(Parent.java:1093)
        at javafx.scene.Scene.doLayoutPass(Scene.java:552)
        at javafx.scene.Scene.preferredSize(Scene.java:1646)
        at javafx.scene.Scene.impl_preferredSize(Scene.java:1720)
        at javafx.stage.Window$9.invalidated(Window.java:846)
        at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:109)
        at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:144)
        at javafx.stage.Window.setShowing(Window.java:922)
        at javafx.stage.Window.show(Window.java:937)
        at javafx.stage.Stage.show(Stage.java:259)
        at ru.bvn13.priceprocessor.MainApp.initRootLayout(MainApp.java:291)
        at ru.bvn13.priceprocessor.MainApp.start(MainApp.java:227)
        at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$162(LauncherImpl.java:863)
        at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$175(PlatformImpl.java:326)
        at com.sun.javafx.application.PlatformImpl.lambda$null$173(PlatformImpl.java:295)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.application.PlatformImpl.lambda$runLater$174(PlatformImpl.java:294)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
        at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at com.sun.glass.ui.win.WinApplication.lambda$null$148(WinApplication.java:191)
        ... 1 more
Exception running application ru.bvn13.priceprocessor.MainApp

Возникает очень часто (но не каждый раз) при стартре с ключом -Xmx1024m. Без этого ключа - не встречал.

Как понять, с чем связана ошибка? Как пофиксить?

 ,

bvn13
()

Осваиваю SpringBoot. Почему url не разрешен?

Форум — Development

Нашел в где-то конфигурацию Security:

http//.csrf().disable()
                .authorizeRequests()
                .antMatchers("/", "/api/**").permitAll()
                .antMatchers("/api/register", "/api/register/**").permitAll()
                .antMatchers("/admin/**").hasAnyRole("ADMIN")
                .antMatchers("/user/**").hasAnyRole("USER")
                .antMatchers("/403").permitAll()
                .anyRequest().authenticated()
                .and()
                .formLogin()
                .loginPage("/login")
                .permitAll()
                .and()
                .logout()
                .permitAll()
                .and()
                .exceptionHandling().accessDeniedHandler(accessDeniedHandler);

Делаю POST запрос к /api/register/check, оно редиректит на /403. Почему?

ЗЫ. Немного обновил инфу.

 , ,

bvn13
()

XDTO-схема, как указать необязательность указания поля?

Форум — Development
<xs:complexType name="orderRow">
        <xs:sequence>
            <xs:element name="product" type="xs:string" />
            <xs:element name="amount" type="xs:decimal" />
            <xs:element name="amountPackages" type="xs:decimal" />
            <xs:element name="package" type="xs:string" />
            <xs:element name="basePackage" type="xs:string" />
            <xs:element name="rowNumber" type="xs:integer" />
        </xs:sequence>
    </xs:complexType>

вот например, как сделать amount необязательным. Чтобы при его отсутствии в сообщении оно оставалось валидным?

 xdto,

bvn13
()

Куда писать оффтоп?

Форум — Talks

Есть проблемы с виндой. Где спросить про них - не знаю. Тут могут покарать :) Посоветуйте ресурсы, форумы.

Ну или с разрешения модераторов я спрошу тут, т.к. люди здесь общаются толковые, может, кто-то знает, или наведет на мысль.

 win faq,

bvn13
()

Как русифицировать контекстное меню в JavaFX?

Форум — Development

https://i.imgur.com/eH0EshT.png

Как-то некошерно выглядит на общем фоне.

 ,

bvn13
()

UltraESB не видит юниты

Форум — Development

UltraESB (теперь уже Legacy версия), юниты есть. Тестовый сервер с debian 8.6, подготовил окружение, клонировал репу с uESB, а запускаться не хочет.

org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [project.ultraesb.transport.file.OurFileTransportListener] for bean with name 'file-rcv' defined in file [/home/bvn13/dev/ultraesb/conf/ultra-root.xml]; nested exception is java.lang.ClassNotFoundException: project.ultraesb.transport.file.OurFileTransportListener

Смотрю, а в conf/mediation/classes нет скомпилленых классов наших юнитов.

Вот и вопрос: в IDE оно в какой-то момент само их скомпилило. А в продакшене как? Мне нужно вручную скомпилить? А как же их концепция «подхватывать налету»?

PS. с uESB я только разбираюсь.

PPS. тэг spring - потому что он используется внутри UltraESB

 , , ultraesb

bvn13
()

RSS подписка на новые темы