java를 통해 프로그래밍 방식으로 tomcat (로컬 호스트에서)을 관리하는 방법을 찾고 있습니다. Tomcat을 시작/중지하고 WAR를 배포하려고합니다.Java를 통해 Tomcat을 관리하는 방법
도움을 주시면 감사하겠습니다. 에
샘플 코드// 바람둥이 : -Dcatalina.home = c :를
java를 통해 프로그래밍 방식으로 tomcat (로컬 호스트에서)을 관리하는 방법을 찾고 있습니다. Tomcat을 시작/중지하고 WAR를 배포하려고합니다.Java를 통해 Tomcat을 관리하는 방법
도움을 주시면 감사하겠습니다. 에
샘플 코드// 바람둥이 : -Dcatalina.home = c :를
시작하는 방법/자바를 통해 바람둥이 중지하면 bootstrap.jar에서 실행 샘플 매개 변수 (클래스 런타임을 사용)를 호출하는 것입니다 자바에서 실행하는 방법을 외부 프로그램을 볼 수
http://ptrthomas.wordpress.com/2006/03/25/how-to-start-and-stop-tomcat-from-ant
샘플 코드 : 바람둥이 정지를 시작하는 방법 개미가 실행 참조 http://www.linglom.com/2007/06/06/how-to-run-command-line-or-execute-external-application-from-java/
박쥐 파일. 사용자가 java 프로세스를 실행하면 Tomcat을 시작하고 중지 할 수있는 권한이 있는지 확인하십시오.
try{
Runtime.getRuntime().exec("c:/program files/tomcat/bin/startup.bat");
} catch(IOException e) {System.out.println("exception");}
당신은 어떻게 관리자 프로세스에게 배포 작업 내용의 소스를 tomcat manager를 사용하거나 볼 수 있습니다.
Tomcat을 프로그래밍 방식으로 관리하려면 Tomcat의 JMX 및 bulit-in MBeans 기능을 살펴볼 수 있습니다.
본질적으로 Java 기반 JMX 클라이언트를 작성하여 RMI를 통해 MBeans와 통신하거나 Manager 응용 프로그램에서 JMX Http 프록시를 활용하고 일반 오래된 HTTP 요청을 사용하여 tomcat 인스턴스를 스크립팅하고 관리 할 수 있습니다 . JMX와 톰캣 6의 좋은 참고로
: http://www.datadisk.co.uk/html_docs/java_app/tomcat6/tomcat6_jmx.htm
관리자 응용 프로그램 및 JMX HTTP 프록시의 좋은 참고 : http://tomcat.apache.org/tomcat-6.0-doc/manager-howto.html#JMX_Set_command
당신은 비교적 쉽게 배포 및 배포 취소 전쟁 할 수 있어야한다.
tomcat을 종료 할 수있는 기존 MBean이 있다고 생각하지 않지만 자신을 구현하고 System.exit()을 호출하는 것이 매우 쉽습니다.
앱에 임베드 된 Tomcat을 실행할 수 있습니다.
두 배로, 임베디드 톰캣은 개발이 매우 편리합니다. 임베딩 예제 [here] (https://github.com/alx3apps/spring-embedded-tomcat)를 찾을 수 있습니다. – alexkasko
응용 프로그램이 실행되는 8843과 같이 개별 Tomcat 커넥터 즉, 포트 다시 시작을 다시 시작할 수 있습니다. 이것이 필요한 경우의 한 시나리오는 API를 통해 서명 된 인증서를 가져 오거나 신뢰 저장소를 수정하는 경우입니다.
다음은 인증서를 추가/삭제 한 후 tomcat 커넥터를 다시 시작하는 데 사용하는 전체 코드/방법입니다.
public void refreshTrustStore() throws Exception
{
try
{
//following line need to be replaced based on where you get your port. It may be passed in as argument
String httpsPort = configurationManager.getHttpsPort();
String objectString = "*:type=Connector,port=" + httpsPort + ",*";
final ObjectName objectNameQuery = new ObjectName(objectString);
for (final MBeanServer server : MBeanServerFactory.findMBeanServer(null))
{
if (server.queryNames(objectNameQuery, null).size() > 0)
{
MBeanServer mbeanServer = server;
ObjectName objectName = (ObjectName) server.queryNames(objectNameQuery, null).toArray()[0];
mbeanServer.invoke(objectName, "stop", null, null);
// Polling sleep to reduce delay to safe minimum.
// Use currentTimeMillis() over nanoTime() to avoid issues
// with migrating threads across sleep() calls.
long start = System.currentTimeMillis();
// Maximum of 6 seconds, 3x time required on an idle system.
long max_duration = 6000L;
long duration = 0L;
do
{
try
{
Thread.sleep(100);
}
catch (InterruptedException e)
{
Thread.currentThread().interrupt();
}
duration = (System.currentTimeMillis() - start);
} while (duration < max_duration &&
server.queryNames(objectNameQuery, null).size() > 0);
// Use below to get more accurate metrics.
String message = "TrustStoreManager TrustStore Stop: took " + duration + "milliseconds";
logger.information(message);
mbeanServer.invoke(objectName, "start", null, null);
break;
}
}
}
catch (Exception exception)
{
//Log and throw exception
throw exception
}
}
Tomcat은 Java 프로그램이다. 그냥 메인 클래스를 호출해야하고, 라이브러리와 인수에 대해 알고있는 스크립트를 참조하십시오. 진짜 질문은 무엇입니까? – Jayan
봄 부츠를 시험해 볼 기회가 있습니까? – wdoering