LINUX.ORG.RU

Сообщения bvn13

 

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

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

Проект SpringBoot.

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

 , , , ,

bvn13
()

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

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


        <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
()

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

Создал сабж.

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
()

Добавляю тег ☑️

 

bvn13
()

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

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

 , ,

bvn13
()

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

>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 не разрешен?

Нашел в где-то конфигурацию 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-схема, как указать необязательность указания поля? ☑️

<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
()

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

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

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

 win faq,

bvn13
()

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

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

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

 ,

bvn13
()

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

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
()

JAXWS завернуть запросы через прокси ☑️

Возможно ли? Как?

 , ,

bvn13
()

Как настроить минимальный прокси? ☑️

squid.conf

#acl localnet src 10.0.0.0/8    # RFC1918 possible internal network
#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network
acl localnet src 192.168.199.0/24       # RFC1918 possible internal network
acl my_work src 217.69.200.80
#acl localnet src fc00::/7       # RFC 4193 local private network range
#acl localnet src fe80::/10      # RFC 4291 link-local (directly plugged) machines
#acl SSL_ports port 443
#acl Safe_ports port 80         # http
#acl Safe_ports port 21         # ftp
#acl Safe_ports port 443                # https
#acl Safe_ports port 70         # gopher
#acl Safe_ports port 210                # wais
#acl Safe_ports port 1025-65535 # unregistered ports
#acl Safe_ports port 280                # http-mgmt
#acl Safe_ports port 488                # gss-http
#acl Safe_ports port 591                # filemaker
#acl Safe_ports port 777                # multiling http
#acl CONNECT method CONNECT
#http_access deny !Safe_ports
#http_access deny CONNECT !SSL_ports
#http_access allow localhost manager
#http_access deny manager
#http_access allow localnet
#http_access allow localhost
http_access allow localnet
http_access allow my_work
http_access deny all
http_port 0.0.0.0:3128
#coredump_dir /var/cache/squid
#refresh_pattern ^ftp:          1440    20%     10080
#refresh_pattern ^gopher:       1440    0%      1440
#refresh_pattern -i (/cgi-bin/|\?) 0    0%      0
refresh_pattern .               0       20%     4320
cache_dir aufs /tmp/squid_cache 200000 16 256
tcp_outgoing_address 0.0.0.0 all

Клиент - винда, выставил в параметрах прокси - мой айпишник с squid. Открываю любую страничку - висит в загрузке.

логи

# tail /var/log/squid/access.log
1499417641.794  60485 217.69.200.80 TCP_TUNNEL/200 614 CONNECT yastatic.net:443 - HIER_DIRECT/178.154.131.216 -
1499417641.794  60484 217.69.200.80 TCP_TUNNEL/200 615 CONNECT yastatic.net:443 - HIER_DIRECT/178.154.131.216 -
1499417642.732  60421 217.69.200.80 TCP_TUNNEL/200 403 CONNECT yabs.yandex.ru:443 - HIER_DIRECT/93.158.134.91 -
1499417642.749  60438 217.69.200.80 TCP_TUNNEL/200 588 CONNECT yastatic.net:443 - HIER_DIRECT/178.154.131.216 -
1499417643.759  60446 217.69.200.80 TCP_TUNNEL/200 4460 CONNECT favicon.yandex.net:443 - HIER_DIRECT/93.158.134.36 -
1499417643.784  60471 217.69.200.80 TCP_TUNNEL/200 463 CONNECT video-tub-ru.yandex.net:443 - HIER_DIRECT/87.250.251.101 -
1499417651.760 149785 217.69.200.80 TCP_TUNNEL/200 1193 CONNECT pagead2.googlesyndication.com:443 - HIER_DIRECT/74.125.232.250 -
1499417651.761 149786 217.69.200.80 TCP_TUNNEL/200 270 CONNECT pagead2.googlesyndication.com:443 - HIER_DIRECT/74.125.232.250 -
1499417651.761 143062 217.69.200.80 TCP_TUNNEL/200 270 CONNECT pagead2.googlesyndication.com:443 - HIER_DIRECT/74.125.232.250 -
1499417651.761 143062 217.69.200.80 TCP_TUNNEL/200 270 CONNECT pagead2.googlesyndication.com:443 - HIER_DIRECT/74.125.232.250 -

И загрузка страницы висит, висит... А стоит сделать killall squid, так страница в браузере сразу появляется. ЧЯСНТ?

Не особо понял в вариантах настройки (прозрачный, непрозрачный)... мне нужно для тестов делать запросы в инет с моего айпишника удаленно.

 , ,

bvn13
()

HTML5 видео плагин устарел?

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

Использую последний хром. Разве это теперь плагинами реализуется? Я считал, что стандарт HTML5 поддерживает...

 , ,

bvn13
()

Где купит Ардуино в МСК? ☑️

Есть где дешевле, чем в 3х от Али?

 

bvn13
()

Callback с параметром ☑️

Как в Java сабж реализовать?

 ,

bvn13
()

Unetbootin - кто им вообще пользуется?

Послушайте, этим говном у кого-то получалось пользоваться? За последние несколько лет каждый раз, когда я писал что-то им на флешку (на Win или на Linux) - любой образ - ничего не грузится. Хоть UEFI, хоть олдскул. Ни одна флешка не стала вдруг магическим образом загрузочной. Ни когда я iso писал, ни когда из самого бут-ина загружал встроенной функцией.

Поэтому резонно вообще задать вопрос, который я пишу в сабже. Собственно, ШТА? Зачем во всевозможных мануалах пишут, что можно писать либо dd, либо unetbootin? НЕТ! Это поделие не пригодно для жизни.

 , закопать,

bvn13
()

Java: Как упаковать объект в строку? ☑️

Типа pickle в питоне, чтобы туда-сюда можно было сохранить-восстановить без особых напрягов.

 ,

bvn13
()

JAX-WS через Spring - не работают DI? ☑️

jaxws-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:ws="http://jax-ws.dev.java.net/spring/core"
       xmlns:wss="http://jax-ws.dev.java.net/spring/servlet"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
		                   http://www.springframework.org/schema/beans/spring-beans.xsd
                           http://jax-ws.dev.java.net/spring/core
                           http://jax-ws.dev.java.net/spring/core.xsd
                           http://jax-ws.dev.java.net/spring/servlet
                           http://jax-ws.dev.java.net/spring/servlet.xsd"
>

    <wss:binding url="/ws/checkLicense">
        <wss:service>
            <ws:service bean="#checkLicenseWS"/>
        </wss:service>
    </wss:binding>


    <!-- Web service methods -->
    <bean id="checkLicenseWS" class="ru.bvn13.licenseserverj.web.ws.CheckLicenseWS">
        <property name="checker" ref="licenseChecker"/>
    </bean>

    <bean id="licenseChecker" class="ru.bvn13.licenseserverj.LicenseChecker">
        <property name="db" ref="database"/>
    </bean>

    <bean id="database" class="ru.bvn13.licenseserverj.Database" scope="singleton">

    </bean>

    <bean id="test" class="ru.bvn13.licenseserverj.TestBean"/>

</beans>

web.xml


    <listener>
        <listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
    </listener>
    <servlet>
        <servlet-name>jaxws</servlet-name>
        <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jaxws</servlet-name>
        <url-pattern>/ws/checkLicense</url-pattern>
    </servlet-mapping>
    <session-config>
        <session-timeout>120</session-timeout>
    </session-config>


без файла sun-jaxws.xml вообще ws не работают:

<?xml version="1.0" encoding="UTF-8"?>
<endpoints
        xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
        version="2.0"
>
    <endpoint
            name="checkLicenseWS"
            implementation="ru.bvn13.licenseserverj.web.ws.CheckLicenseWS"
            url-pattern="/ws/checkLicense"/>

</endpoints>

В чем дело?

 bean, , ,

bvn13
()

i3wm и TeamViewer ☑️

Только у меня одного не передаются сочетания клавиш Win+Num, если на той стороне i3wm?

Может, кто-то сумел побороть?

 ,

bvn13
()

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