서버를 다시 시작하지 않고 Tomcat에서“server.xml”을 편집 하시겠습니까?


10

Tomcat 8의 conf폴더 에서 "server.xml"파일을 편집했습니다 . Host새 웹 사이트에 새 태그를 추가했습니다 .

Tomcat 서버를 다시 시작해야합니까?

Tomcat이 새로 편집 한 내용을 구문 분석하고 적용 할 수 있습니까 server.xml?



@dawud 링크에 감사드립니다. 그러나에 대한 이야기는 <Host>아닙니다 <Context>.
Basil Bourque

2
그럼에도 불구하고 중요한 부분은 server.xml시작시 한 번 구문 분석됩니다. 다시 시작하지 않고 다시로드 할 수 없습니다.
dawud

@dawud 감사합니다. 나는 그 언급을 지금 본다. 나는이 질문을 닫을 수 있도록 대답했다.
Basil Bourque

답변:


14

Tomcat을 다시 시작하지 않고 실제로 파일을 편집하는 것이 가능하기 때문에 질문이 완전히 올바르게 작성되지 않았다고 말하면서 시작하지만 변경 사항은 실행중인 프로세스에서 무시됩니다.

실제 질문은 server.xmlTomcat을 다시 시작하지 않고 변경 사항을 적용하는 방법 입니다.

Tomcat 온라인 문서 의 시작 프로세스클래스 로더 페이지에서 정보를 수집하여 이를보다 자세히 이해할 수 있습니다.

보다 구체적으로 serverStartup.txt시작 프로세스UML 다이어그램에 설명되어 있으며 관련 부분은 다음과 같이 요약 할 수 있습니다.

Sequence 1. Start from Command Line
  ...
Sequence 2. Process command line argument (start, startd, stop, stopd)
Class: org.apache.catalina.startup.Bootstrap (assume command->start)
What it does:
a) Catalina.setAwait(true);
b) Catalina.load()
    b3) createStartDigester()
        Configures a digester for the main server.xml elements
    b4) Load the server.xml and parse it using the digester
        Parsing the server.xml using the digester is an automatic
        XML-object mapping tool, that will create the objects defined
        in server.xml
        Startup of the actual container has not started yet.
    b6) Calls initialize on all components, this makes each object
        register itself with the JMX agent.

이는 서블릿 엔진 (Catalina)의 Bootstrap 클래스 로더를 만든 후에 발생합니다.

이 정보를 사용하면 시작 프로세스에서 server.xml파일을 구문 분석 할 때 명확 해지지 만이 파일에 변경 사항을 적용하기 위해 Tomcat을 다시 시작해야하는 이유에 대한 질문에는 실제로 대답하지 않습니다.

대답은 있다는 것입니다 일부 의 일부가 런타임에 동적으로 변경 될 수있다 JMX를 사용하여 . 이것이 가능하려면 적절한 MBean을 등록해야하고 (b6 단계 이상) SET 조작을 승인해야합니다 (일부 MBean에는 GET 인터페이스 만 있음).

특정 경우에는 런타임에 새 호스트를 생성하고 등록 할 수있는 방법이 없기 때문에 Tomcat 프로세스를 다시 시작하여 Bootstrap 클래스 로더가 해당 객체를 인스턴스화하고이를 등록해야하는 이유입니다. JMX 에이전트.

그 후, jconsoleJDK와 함께 제공되는 것과 같은 JMX 클라이언트에서 해당 호스트를 수정할 수 있습니다.

jconsoleJMX 가능 Tomcat에 연결 하고 Host MBean을 탐색하여 사용 가능한 모든 속성을 확인하십시오.

Host MBean의 속성을 보여주는 jconsole

사용 가능한 모든 작업을 확인하십시오 (아래에 표시된 작업 중 하나).

Host MBean에서의 예제 조작을 보여주는 jconsole


1
JMX 소개에 +1
Raja Anbazhagan

7

아니요. 다시 시작해야합니다.

<Context>언급 된 Tomcat 문서 페이지 :

… Tomcat을 다시 시작하지 않으면 기본 conf / server.xml 파일을 다시로드 할 수 없습니다.


1
그 공언은 @dawud로 가야한다. we’re talking about <Host>, not <Context>.-1 미안 하다고 말한 사람에 대한 불쌍한 대답 , 내가하는 일은 드물지만, 내가해야 할 일은 ...
krisFR

@krisFR dawud는 언제 어디서나 자유롭게 답변을 작성할 수있었습니다. 모든 사람이 투표를 위해이 게임을하는 것은 아닙니다.
Basil Bourque

1
@krisFR, Basil Bourque보다 일반적인 방법으로 이것을 다루기 위해 더 자세한 답변을 추가했습니다. 유용하기를 바랍니다.
dawud
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.