상세 컨텐츠

본문 제목

The Tomcat connector configured to listen on port 9999 failed to start.

ETC

by jeonghojin 2022. 7. 28. 11:21

본문

 

톰캣 실행시 에러 발생.

 

netstat -lntp |grep [포트번호]

 

PID 로 사용중인 프로세스 확인

ps -ef|grep [PID]

ex) ps -ef|grep 1365

 

현재 포트 사용중 (branchAdmin에서 사용중)

 

properties 파일에 내용 추가.

 java 파일 수정.

package com.sbicosmoney.admin.config;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ConnectorConfig {

    @Value("${server.port}")
    private int serverPort;

    @Value("${server.mode}")
    private String serverMode;

    static final String prodStr ="prod";
    static final String stageStr ="stage";

    @Bean
    public ServletWebServerFactory servletContainer() {

        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };

        if(serverMode.equals(prodStr) || serverMode.equals(stageStr))
        {
            tomcat.addAdditionalTomcatConnectors(createSslConnector());
        }

        return tomcat;
    }

    private Connector createSslConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(9999);
        connector.setRedirectPort(serverPort);
        return connector;
    }

}

아래로 변경. (포트 변경)

package com.sbicosmoney.admin.config;

import org.apache.catalina.Context;
import org.apache.catalina.connector.Connector;
import org.apache.tomcat.util.descriptor.web.SecurityCollection;
import org.apache.tomcat.util.descriptor.web.SecurityConstraint;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

@Configuration
public class ConnectorConfig {

    @Value("${server.port}")
    private int serverPort;

    @Value("${server.http.port}")
    private int serverHttpPort;

    @Value("${server.mode}")
    private String serverMode;

    static final String prodStr ="prod";
    static final String stageStr ="stage";

    @Bean
    public ServletWebServerFactory servletContainer() {

        TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory(){
            @Override
            protected void postProcessContext(Context context) {
                SecurityConstraint securityConstraint = new SecurityConstraint();
                securityConstraint.setUserConstraint("CONFIDENTIAL");
                SecurityCollection collection = new SecurityCollection();
                collection.addPattern("/*");
                securityConstraint.addCollection(collection);
                context.addConstraint(securityConstraint);
            }
        };

        if(serverMode.equals(prodStr) || serverMode.equals(stageStr))
        {
            tomcat.addAdditionalTomcatConnectors(createSslConnector());
        }

        return tomcat;
    }

    private Connector createSslConnector() {
        Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
        connector.setScheme("http");
        connector.setSecure(false);
        connector.setPort(serverHttpPort);
        connector.setRedirectPort(serverPort);
        return connector;
    }

}

 

> 기존 9999로 접속시 redirect를 시켜주고 있었다.

9999를 사용하고 있어, 10000으로 변경.

redirect 포트 또한 10002 -> 10001 로 변경

관련글 더보기