Генерация классов из нескольких XSD

Если вы пишите у себя клиент для вызова внешнего soap-сервиса, скорее всего вы выкачали с этого сервиса wsdl и написали у себя в pom.xml что-то типа такого:

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <version>0.12.3</version>
    <executions>
        <execution>
            <id>generate-scan-server</id>
            <goals>
                <goal>generate</goal>
            </goals>
            <phase>initialize</phase>
            <configuration>
                <schemaIncludes>
                    <include>ScanServerWS.wsdl</include>
                </schemaIncludes>
                <generatePackage>ru.ebrains.ws.scanserver</generatePackage>
                <removeOldOutput>false</removeOldOutput>
            </configuration>
        </execution>
    </executions>
    <configuration>
        <forceRegenerate>true</forceRegenerate>
        <schemaDirectory>src/main/resources/wsdl</schemaDirectory>
        <bindingDirectory>src/main/resources/bind</bindingDirectory>
        <args>
            <arg>-XtoString</arg>
            <arg>-XtoString-toStringBuilder=com.acme.foo.MyStringBuilder</arg>
            <arg>-Xequals</arg>
            <arg>-XhashCode</arg>
        </args>
        <plugins>
            <plugin>
                <groupId>org.jvnet.jaxb2_commons</groupId>
                <artifactId>jaxb2-basics</artifactId>
                <version>0.9.5</version>
            </plugin>
        </plugins>
    </configuration>
</plugin>
Читать далее Генерация классов из нескольких XSD

Local Java Applications Cannot Be Monitored

Сегодня словил OutOfMemoryError, ну подумал «ща как открою JavaVisualVM как начну копаться в памяти», а как открыл, получил «сасай» и сообщение при открытии: «Local Java Applications Cannot Be Monitored»

Если коротко об ошибке — VisualVM не может мониторить локальные java-приложухи

Читать далее Local Java Applications Cannot Be Monitored

@PreAuthorize не работает на методах класса-родителя

Интересная особенность спринг-секурити

Я почему-то думал, что навесив @PreAuthorize я полностью засекьюрю весь класс, все методы и все методы родителя, но бинпостпрцоессор, который обрабатывает аннотацию PreAuthorize берет bean.getDeclaredMethods(), а не getMethods(), из-за чего все методы родителя не защищены и приходится навешивать @PreAuthorize так же и в контроллере родителя от которого я расширяюсь

Список SuppressWarnings аргументов

В первой колонке ищем варнинг-дескрипшн, со второго берем значение и ставим над методом:

@SuppressWarnings("<аргумент>") //шаблон
@SuppressWarnings("ResultOfMethodCallIgnored") //пример
@SuppressWarnings({"ResultOfMethodCallIgnored", "MagicNumber"}) //можем передавать массив аргументов

Читать далее Список SuppressWarnings аргументов

Unable to initialize due to invalid secret key

Дарова нигеры.

Сегодня поймал вот такой эксепшн:

Caused by: java.lang.IllegalArgumentException: Unable to initialize due to invalid secret key
at org.springframework.security.crypto.encrypt.CipherUtils.initCipher(CipherUtils.java:120)
at org.springframework.security.crypto.encrypt.AesBytesEncryptor.encrypt(AesBytesEncryptor.java:115)
at org.springframework.security.crypto.encrypt.HexEncodingTextEncryptor.encrypt(HexEncodingTextEncryptor.java:36)

По дефолту Spring Security использует 256-битный ключ для шифрование, а JDK из коробки поддерживает только 128-битный ключ. Чтобы разрулить эту проблему нужно скачать local_policy.jar и US_export_policy.jar из оракла: http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html и заменить их по пути: /путь_до_jdk/jre/lib/security

public static void main

@SpringBootApplication
public class Ebrains {

    public static void main(String[] args) {
        SpringApplication.run(Ebrains.class, args);
        System.out.println("omg, its blog");
    }
}