Получение ОШИБКИ - Не удалось загрузить! при запуске JettyTestServer с несколькими портами для удаленного тестирования интеграции

У меня есть один сценарий, где я должен проверить удаленную функциональность с помощью нескольких JVM. Я пытаюсь запустить JettyTestServer с двумя разными портами. Но я получаю ошибку ниже при запуске Jetty на втором порту.

ERROR - Failed to Boot! Your application may not run properly
java.lang.IllegalStateException: Cannot modify after boot.

Тем не менее, мои тесты успешно проходят. Удаленный функционал работает нормально.

Вот мой код:-

object JettyTestServer {
private val serverPort = System.getProperty("SERVLET_PORT", "8989").toInt
private var baseUrl = "http://localhost:" + serverPort

private val server: Server = {
val server = new Server(8989)
val context = getContext
server.setHandler(context)
context.addServlet("org.eclipse.jetty.servlet.DefaultServlet", "/")
val connector: SelectChannelConnector = getConnector(8989)
val connList: List[Connector] = List(connector)
server.setConnectors(connList.toArray);
server
}

private val remoteServer: Server = {
val server = new Server(8991)
val context = getContext
server.setHandler(context)
context.addServlet("org.eclipse.jetty.servlet.DefaultServlet", "/")
val connector: SelectChannelConnector = getConnector(8991)
val connList: List[Connector] = List(connector)
server.setConnectors(connList.toArray);
server
}

private def getContext: WebAppContext = {
val context = new WebAppContext()
context.setContextPath("/")
context.setDescriptor("src/main/webapp/WEB-INF/web.xml")
context.setResourceBase("src/main/webapp")
context.setParentLoaderPriority(true)
context
}

private def getConnector(port: Int): SelectChannelConnector = {
val connector: SelectChannelConnector = new SelectChannelConnector()
connector.setPort(port)
connector.setConfidentialPort(8443)
connector.setAcceptors(2)
connector.setMaxIdleTime(30000)
connector
}

def urlFor(path: String) = baseUrl + path

lazy val start = {
server.start()
}

lazy val startRemoteServer = {
remoteServer.start()
}

В моих тестовых примерах я использую следующие строки для запуска пристани:

com.test.api.JettyTestServer.start

com.test.api.JettyTestServer.startRemoteServer

Дайте мне знать, если я что-то упустил в конфигурации.

Заранее спасибо.

0 ответов

Другие вопросы по тегам