Java Spring boot 2地址已在使用中

Java Spring boot 2地址已在使用中,java,spring-boot,Java,Spring Boot,我有一个SpringBoot应用程序,它是一个每天运行的cron作业。 我最近将spring boot应用程序从1.5.10迁移到2.1.6,将Java从8迁移到11。 在服务器中部署时,此应用程序将引发异常: java.net.BindException:地址已在使用中 它在较低版本上运行良好 我确保没有其他服务在端口8590上运行 下面是我的gradle文件: plugins { id 'org.springframework.boot' version '2.1.6.RELEASE

我有一个SpringBoot应用程序,它是一个每天运行的cron作业。 我最近将spring boot应用程序从1.5.10迁移到2.1.6,将Java从8迁移到11。 在服务器中部署时,此应用程序将引发异常: java.net.BindException:地址已在使用中

它在较低版本上运行良好

我确保没有其他服务在端口8590上运行

下面是我的gradle文件:

plugins {
    id 'org.springframework.boot' version '2.1.6.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'org.springframework.boot'
apply plugin: 'jacoco'
apply plugin: 'checkstyle'
apply plugin: 'jdepend'

sourceCompatibility = 1.11

bootJar {
    baseName = 'alerts-service'
}

checkstyle {
    ignoreFailures = true
    toolVersion = '8.2'
    configDir = file("$rootProject.projectDir/etc/checkstyle")
    System.setProperty('checkstyle.cache.file', String.format('%s/%s', buildDir, 'checkstyle.cachefile'))
}

repositories {
    maven {
        url "http://repo/repository/cmp-maven-releases"
    }
    maven {
        url "http://repo/repository/cmp-maven-snapshots"
    }
    mavenCentral()
}

dependencies {
    compile('org.springframework.boot:spring-boot-starter-data-jpa')
    compile('org.springframework.boot:spring-boot-starter-jdbc') {
        exclude group: 'org.apache.tomcat', module: 'tomcat-jdbc'
    }
    compile('org.springframework.boot:spring-boot-starter-web')
    compile('org.springframework.boot:spring-boot-starter-mail')

    compile("org.apache.axis:axis:1.4")
    compile('org.apache.commons:commons-lang3:3.5')
    compile('org.apache.httpcomponents:httpclient:4.3.4')
    compile('org.apache.pdfbox:pdfbox:2.0.1')

    compile("com.itextpdf:itextpdf:5.1.3")
    compile("com.itextpdf:itext-xtra:5.1.3")
    compile("com.itextpdf.tool:xmlworker:1.1.1")

    compile("net.sf.ehcache:ehcache:2.10.3")

    compile("commons-discovery:commons-discovery:0.5")
    compile("com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.8.4")

    compile('ch.qos.logback:logback-core:1.1.8')
    compile('ch.qos.logback:logback-classic:1.1.8')
    compile("wsdl4j:wsdl4j:1.6.2")

    compile("javax.jms:jms:1.1")
    compile("com.ibm:mq-mqjms:7.0.1")
    compile('org.springframework:spring-jms:4.3.3.RELEASE')
    runtime("com.ibm:mq-commonservices:7.0.1")
    runtime("com.ibm:mq-headers:7.0.1")
    runtime("com.ibm:mq:7.0.1")
    runtime("com.ibm:mq-jmqi:7.0.1")
    runtime("com.ibm:mq-pcf:7.0.1")
    runtime("net.sf.jt400:jt400-full:5.4")
    runtime("com.ibm:mq-mqcontext:7.0.1")
    runtime("com.ibm:mq-dhbcore:7.0.1")
    runtime("javax.transaction:jta:1.1")

    runtime('com.microsoft:sqljdbc4:4.0')

    testRuntime('com.h2database:h2')
    testCompile('org.springframework.boot:spring-boot-starter-test')
    testCompile group: 'junit', name: 'junit', version: '4.4'
}
我在application.properties中指定了端口

server.port=8590
我尝试了以下财产以及没有工作

management.server.port=8590

management.endpoints.web.exposure.include=*
management.endpoint.shutdown.enabled=true
endpoints.shutdown.enabled=true
如有任何提示,将不胜感激

编辑: 我尝试删除此服务的PID并触发启动脚本。我做了工作,在下一次执行时,它再次抛出相同的错误

看起来每次执行后都必须关闭

srartup.sh

nohup /opt/jdk-11.0.2/bin/java -Xmx768m -Xms256m -Dlogging.config=/opt/runnables/alerts-service/logback.xml -jar /opt/runnables/alerts-service/alerts-service.jar --spring.profiles.active=qa &> logs/console.log&

检查哪个进程正在使用端口

在窗户里

netstat -ano | find "8080"
在linux中

netstat -nap | grep 8080

如果其他人正在使用该端口,您必须使用另一个端口或终止另一个进程并释放该端口。

最终我找到了解决方案。通过添加应用程序上下文,关闭标记在main类中对我有效

SpringApplication.run(AlertsApplication.class, args).close();

尝试更改到另一个端口。查看此帖子是否有帮助:@SunilChakravarthy和RoddyoffFrozenpeas,请查看我更新了我的帖子。您可以将此
management.server.port=8590
设置到不同的端口并尝试吗?@SunilChakravarthy:相同的结果,我在8591上尝试过。它在下一次执行后第一次运行失败