Как запустить и остановить Payara Micro из скрипта сборки Ant? - PullRequest
0 голосов
/ 23 ноября 2018

У меня есть Ant build.xml, который запускает экземпляр Payara Micro 5.183 с некоторыми параметрами до и после развертывания.Чтобы остановить экземпляр, я должен убить его процесс Java.Я хотел бы вызвать его метод завершения работы.

Я использую Open JDK 11.0.1

Вот соответствующий build.xml:

<target name="start payara micro">
    <java classname="fish.payara.micro.PayaraMicro" classpathref="payara.classpath" dir="${payara.micro.home}" fork="true">
        <arg line="--prebootcommandfile ${payara.micro.home}/conf/pre-boot.asadmin --postdeploycommandfile ${payara.micro.home}/conf/post-deploy.asadmin --deploy ${payara.micro.home}/activemq-rar --noCluster --domainConfig ${payara.micro.home}/conf/domain.xml"/>
        <jvmarg line="--add-opens java.naming/javax.naming.spi=ALL-UNNAMED --add-opens java.base/jdk.internal.loader=ALL-UNNAMED --add-opens java.base/sun.net.www.protocol.jar=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED -Dcom.sun.xml.bind.v2.bytecode.ClassTailor.noOptimize --illegal-access=deny"/>
    </java>
</target>

Я пыталсярешить проблему с помощью небольшого Java-класса, имеющего метод main ():

public static void main( String[] args ) throws BootstrapException {
    Console console = System.console();
    if ( console == null ) {
        System.err.println(
                "Cannot obtain a console. No interactive environment. Aborting" );
        System.exit( -1 );
    }

    // --- Start Payara with given parameters
    PayaraMicro.main( args );

    // --- Start Payara Micro How do I give params?
    PayaraMicro instance = PayaraMicro.getInstance();
    PayaraMicroRuntime runtime = instance.bootStrap();

    String input = null;
    while ( (input == null) || (input.equals( "x" ) == false) ) {
        input = console.readLine( "Enter 'x' to exit" );
    }
}

Я заменил имя класса в сценарии сборки своим именем класса Java и запустил Ant.Но это уже потому, что консоль null .Но даже если бы я мог получить консоль, я не нашел способа как передать параметры Payara, так и получить экземпляр.Я мог бы либо передать параметры с помощью main () , либо получить экземпляр с помощью bootstrap () , но не оба.Есть идеи?

...