如何检查我的jboss是在JAVA中启动的?

时间:2012-11-19 05:25:08

标签: jboss instance

ex)abc.war部署在Jboss中。

我想知道jboss是否已经启动...已经部署了java源代码(abc.war)。

正在运行一个线程来检查它。

但我想知道我怎么知道我的jboss已经完全开始了。

或如何知道jboss成功启动的终点。

我必须在jboss完成之后执行一些方法。

jboss5.0 + spring3.0 + jre1.6

2 个答案:

答案 0 :(得分:1)

编辑:我刚刚意识到你的目标是JBoss 5. AFAIK,以下建议仅适用于JBoss 7.x.请告诉它是否仍与您相关。否则我会删除答案。

您可以使用Jboss Management API。 HEre是如何使用JBoss detyped management(jboss.dmr)库访问JBoss管理的示例:

    final ModelNode request = new ModelNode();
    request.get(ClientConstants.OP).set("read-resource");
    request.get("recursive").set(true);
    request.get(ClientConstants.OP_ADDR).add("subsystem", "deployments");

    ModelControllerClient client = null;
    try {
        client = ModelControllerClient.Factory.create(InetAddress.getByName(MANAGEMENT_HOST),
                MANAGEMENT_PORT);
    } catch (final UnknownHostException e) {
        log.warn("unable to create ModelControllerClient on {}:{}, {}", new Object[] {
                MANAGEMENT_HOST, MANAGEMENT_PORT, e });
        return;
    }
    ModelNode response = null;
    try {
        response = client.execute(new OperationBuilder(request).build());
    } catch (final IOException e) {
        log.warn("unable to perform operation : {}, {}", request, e);
        return;
    }

    log.info("request returned following results:");
    final ModelNode resultNode = response.get(ClientConstants.RESULT);
    for (final String key : resultNode.keys()) {
        log.info("{} : {}", key, resultNode.get(key));
    }

答案 1 :(得分:0)

也许JSR-88会有所帮助,JBoss支持甚至provides example code注意它的使用?