Запуск приложения Spring Boot в WebSphere 9

У меня есть приложение Spring Boot с основным классом:

@SpringBootApplication
public class MyApplication extends SpringBootServletInitializer{

    public static void main(String[] args) {
        SpringApplication.run(MyApplication .class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application){
        return application.sources(applicationClass);
    }

    private static Class<MyApplication > applicationClass = MyApplication .class;
}

С gradle.build:

version '1.0'
// dependencies for command line
buildscript {
    ext {
        springBootVersion = '1.4.3.RELEASE'
        dependencyManagementVersion = '0.6.0.RELEASE'
    }
    repositories {
        jcenter()
    }
    dependencies {
        classpath "org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}"
        classpath "io.spring.gradle:dependency-management-plugin:${dependencyManagementVersion}"
    }
}

apply plugin: "io.spring.dependency-management"
apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'war'
apply plugin: 'eclipse'
apply plugin: 'idea'

// JDK 8
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8

repositories {
    jcenter()
}

ext {
    springCloudVersion = 'Brixton.SR4'
    springBootVersion = '1.4.3.RELEASE'
    swaggerVersion = '2.4.0'
    jodaTimeVersion = '2.9.4'
    jacksonJodaVersion = '2.5.1'
    junitVersion = '4.12'
    springWsTestVersion = '2.2.3.RELEASE'
    lombokVersion = '1.16.10'
    jsonPathVersion = '2.2.0'
    ehcacheVersion = '3.2.0'
    javaxCacheVersion = '1.0.0'
}

dependencyManagement {
    imports {
        mavenBom "org.springframework.cloud:spring-cloud-dependencies:${springCloudVersion}"
        mavenBom "org.springframework.boot:spring-boot-starter-parent:${springBootVersion}"
    }
}

sourceSets {
    test {
        java {
            srcDir 'src/test/unit/java'
        }
        resources {
            srcDir 'src/test/unit/resources'
        }
    }
}

tasks.withType(JavaExec) {
    if (System.getProperty("DEBUG", 'false') == 'true') {
        jvmArgs '-Xdebug', '-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5006'
    }
}

dependencies {
    // https://mvnrepository.com/artifact/javax/javaee-api
    compile group: 'javax', name: 'javaee-api', version: '7.0'

    /* core libraries */
    compile('org.springframework.cloud:spring-cloud-starter-config') {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    compile('org.springframework.boot:spring-boot-starter-web') {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    compile("org.springframework.boot:spring-boot-starter-hateoas"){
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    compile 'org.springframework.ws:spring-ws-core'

    // tag::actuator[]; for @RefreshScope
    compile("org.springframework.boot:spring-boot-starter-actuator"){
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    // end::actuator[]
    // logging
    compile('org.springframework.boot:spring-boot-starter-log4j2')
    compile('com.fasterxml.jackson.dataformat:jackson-dataformat-yaml')
    compile('com.fasterxml.jackson.core:jackson-databind')

    // embedded server
    providedRuntime ('org.springframework.boot:spring-boot-starter-tomcat')


    // https://mvnrepository.com/artifact/org.projectlombok/lombok-maven
    compile "org.projectlombok:lombok:${lombokVersion}"

    // https://mvnrepository.com/artifact/com.jayway.jsonpath/json-path
    // A Java DSL for reading JSON documents
    compile "com.jayway.jsonpath:json-path:${jsonPathVersion}"

    //for EhCache
    // https://mvnrepository.com/artifact/org.ehcache/ehcache
    compile "org.ehcache:ehcache:${ehcacheVersion}"
    // https://mvnrepository.com/artifact/javax.cache/cache-api
    compile "javax.cache:cache-api:${javaxCacheVersion}"
    // utilities
    compile "io.springfox:springfox-swagger2:${swaggerVersion}"
    compile "io.springfox:springfox-swagger-ui:${swaggerVersion}"
    compile "joda-time:joda-time:${jodaTimeVersion}"
    compile "com.fasterxml.jackson.datatype:jackson-datatype-joda:${jacksonJodaVersion}"
    compile ("org.springframework.boot:spring-boot-starter-aop") {
        exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging'
    }
    compile "org.aspectj:aspectjweaver:1.8.8"

    /* plugins */

    /* test libraries */
    // unit
    testCompile "junit:junit:${junitVersion}"
    testCompile "org.springframework.boot:spring-boot-starter-test"
    testCompile "org.springframework.ws:spring-ws-test:${springWsTestVersion}"
}

war {
    archiveName = "${project.name}.war"
    manifest {
        attributes 'Main-Class': 'com..content.MyApplication'
    }
}

Когда я пытаюсь развернуть военный файл на WebSphere Application Server 9.0 Traditional, он запускается, но занимает очень много времени. Без файла войны сервер запускается и останавливается очень нормально, но с приложением сервер зависает.

Я что-то упускаю?

Спасибо за помощь!!


person Yogen Rai    schedule 20.01.2017    source источник


Ответы (1)


Задержка запуска, вероятно, вызвана неявным сканированием архива компонентов CDI. Если вы не используете CDI, вы можете отключить неявные архивы bean-компонентов с помощью com.ibm.ws.cdi.enableImplicitBeanArchives=false.

Вы можете найти гораздо более подробное объяснение в этой технической заметке:
Пользовательские свойства для улучшения запуска приложений в WebSphere Application Server

person Andy Guibert    schedule 20.01.2017
comment
куда поставить это значение?? - person Yogen Rai; 20.01.2017
comment
хм... получил это здесь о том, как поставить эти значения. :) - person Yogen Rai; 20.01.2017
comment
Амм... но производительность не улучшилась... не могли бы вы изучить мой другой вопрос webapp - SRVE0278E: Ошибка при добавлении сопоставления сервлета --› /* пожалуйста. - person Yogen Rai; 21.01.2017