Архив категории ‘Java’

2. JMS + IBM MQ + Tests

Нужно написать интеграционный тест для тестирования обработки входящих в топик сообщений. Для этого нужно будет настроить тестовый контекст таким образом, чтобы поднимался встроенный JMS-сервер, через который осуществлялось бы взаимодействие. Буду рассматривать приложение, описанное в первой статье: https://knasys.ru/1-jms-ibm-mq-pub-sub/ Я не нашел информации о том можно ли встроить IBM MQ в приложение, поэтому встраивать будем ActiveMQ (он […]

1. JMS + IBM MQ - чтение из топика (паттерн Publisher/Subscriber)

Для начала нам понадобится сервис IBM MQ. Поднимаем его локально с помощью Docker. Для этого выполним команду в консоли: В результате скачается и запустится образ. Будут проброшены 2 порта - 11414 (для взаимодействия с MQ) и 9443 (web-интерфейс).Web-интерфейс поднимется не сразу, у меня он начинает работать только минуты через 4 после запуска контейнера. До этого […]

Intellij Idea, Java, Spring - Troubleshooting

Type specified for TypedQuery [ru.knastnt.app.MyClass] is incompatible with query return type [class ru.knastnt.app.MyClass] Такое случается при дебаге и решается с путём исключения из pom.xml зависимости spring-boot-devtools. Can't load camunda cockpit with error in console: It was not able to load the following file 'app/plugin.js' Проблема описана здесь https://jira.camunda.com/browse/CAM-10738 и решением является: - либо запуск с […]

Liquibase

Не буду разжевывать то что и так везде разжевано, просто запишу тут некоторые вещи. Если нужно управлять ченджсетами вне контекста java-приложения, то это можно сделать непосредственно через утилиту liquibase.exe. Для начала нужно установить liquibase на компьютер.Затем добавить в директорию lib драйвер postgre-jdbc (желательно версии не ниже 9.6, а то будут потом проблемы).Затем запускать из директории […]

Java шпаргалка

Файл application.properties Большой список всевозможных свойств и описаний к ним Получение значения параметра свойства Надо пометить переменную наподобие такого RestTemplate send PATCH request При попытке отправить PATCH запрос, возникает исключение ProtocolException: Invalid HTTP method: PATCH или ResourceAccessException: I/O error on PATCH request Для решения проблемы следует добавить зависимость: И создавать RestTemplate следующим образом: Spring инициализация […]

Определить, содержит ли переданный объект определенный метод

12345678910111213141516171819202122232425import java.lang.reflect.Method; public class test {     public static class Cat{         void say(String word){             System.out.println("Cat says: " + word);         }     }     public static void main(String[] args) {         Cat cat = new Cat(); […]

Как отправить email из программы Java

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354import javax.mail.*; import javax.mail.internet.*; import java.util.Properties; public class test {     public static void main(String[] args) {         //Отправить E-Mail         //Скачать javamail api (javax.mail.jar) отсюда http://www.oracle.com/technetwork/java/javamail/index.html         //В Intellij IDEA в меню File->Project Structure...->Libraries нажать плюсик и добавить этот файл к проекту     […]

Как отсортировать список строк в обратном алфавитном порядке

1234567891011121314151617import java.util.Arrays; import java.util.Comparator; public class test {     static class MyComparator implements Comparator<String> {         public int compare(String strA, String strB) {             return strB.compareTo(strA);         }     }     public static void main(String[] args) {         […]

Правила сериализации

При сериализации автоматически не сериализуются: - transient переменные - static переменные - унаследованные переменные (они будут инициализированы с помощью конструктора родительского класса без параметров). Все это можно разными способами сериализовать врукопашную (externalizable). Для сериализации объектов внутренних нестатических классов, внешние классы должны быть сериализуемыми. Да, чтобы немного дополнить алгоритм стандартной сериализации/десериализации, используют два метода: 1234567891011121314151617181920public class […]

Получить имя пакета класса

1MyClass.class.getPackage().getName() 1