Running Spring Boot Application on WebSphere 9

不问归期 提交于 2019-12-07 13:22:47

问题


I've a Spring Boot Application with main class:

@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;
}

With 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'
    }
}

When I try to deploy the war file on WebSphere Application Server 9.0 Traditional, it starts but takes very long time. Without war file, server starts and stops very normally, but with application, server hangs.

Am I missing something?

Thank you for help!!


回答1:


The startup delay is probably caused by CDI's implicit bean archive scanning. If you are not using CDI, you can disable implicit bean archives with com.ibm.ws.cdi.enableImplicitBeanArchives=false.

You can find a much more detailed explanation in this tech note:
Custom Properties for improving application startup in WebSphere Application Server



来源:https://stackoverflow.com/questions/41754752/running-spring-boot-application-on-websphere-9

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!