Java 停止和重新启动嵌入式Tomcat8失败,端口已在使用中
我有java(kotlin)应用程序启动多个嵌入式服务器。没关系。我也有一些单元测试,它在每个单元之前启动这些服务器,在每个单元之后停止它们 tomcat上的stop方法毫无例外地完成,但随后的服务器启动失败,端口正在使用中 我的基类相当标准Java 停止和重新启动嵌入式Tomcat8失败,端口已在使用中,java,kotlin,tomcat,Java,Kotlin,Tomcat,我有java(kotlin)应用程序启动多个嵌入式服务器。没关系。我也有一些单元测试,它在每个单元之前启动这些服务器,在每个单元之后停止它们 tomcat上的stop方法毫无例外地完成,但随后的服务器启动失败,端口正在使用中 我的基类相当标准 open class TomcatBase( val tomcat: Tomcat = Tomcat() ) { val context:Context val contextPath:String init {
open class TomcatBase(
val tomcat: Tomcat = Tomcat()
) {
val context:Context
val contextPath:String
init {
tomcat.engine.name=UUID.randomUUID().toString()
contextPath = ""
val dir_url: URL = ClassLoader.getSystemResource("static")
val docBase = File(dir_url.toURI()).absolutePath
context = tomcat.addContext(contextPath, docBase)
}
fun addServlet(path: String, servlet: Servlet) {...}
fun start() {
tomcat.start()
context.resources.isCachingAllowed = false
}
fun stop() {
tomcat.stop()
}
}
事实证明还有destroy()方法,它完成了这个任务
fun stop() {
tomcat.stop()
tomcat.destroy()
}