首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >API调用的等效YAML配置

API调用的等效YAML配置
EN

Stack Overflow用户
提问于 2017-10-29 10:32:12
回答 1查看 84关注 0票数 1

我一直在使用API来成功地引导我的应用程序,现在由于某些原因,我不得不使用一个中空的uberjar从一个单独的WAR启动应用程序。由于我找不到任何关于如何使用空心jar的自定义main方法的引用,并且由于2017.10.1关于main方法的注释,我决定使用YAML配置。我完成了转换,但是我得到了不同的错误,这些错误至少表明消息传递部分没有得到信任。挖掘参考资料也没有帮助。

下面是有效的方法:

代码语言:javascript
复制
        swarm
            // Setup data sources
            .fraction(new DatasourcesFraction()
                    // SWARM BUG: at least one DS without JNDI binding shall be provided ~> https://issues.jboss.org/browse/SWARM-1447
                    .dataSource("def-ds", ds -> {
                        ds.driverName("postgresql");
                        ds.connectionUrl(jdbcUrl);
                        ds.userName("commons_user");
                        ds.password("commonsTestDb");
                        ds.jta(true);
                    })
                    .dataSource("common-ds", ds -> {
                        ds.driverName("postgresql");
                        ds.connectionUrl(jdbcUrl);
                        ds.userName("commons_user");
                        ds.password("commonsTestDb");
                        ds.jndiName("java:/jdbc/dbpool");
                        ds.jta(true);
                    }))

            // Setup JMS
            .outboundSocketBinding("standard-sockets",
                    new OutboundSocketBinding("remote-activemq")
                            .remoteHost("artemis")
                            .remotePort("61616"))


            .fraction(new MessagingFraction()
                    .defaultServer(server -> {

                        server.remoteConnector("remote-activemq", connector -> {
                            connector.socketBinding("remote-activemq");
                        });

                        server.pooledConnectionFactory("remote-activemq", factory -> {
                            factory.connectors("remote-activemq");
                            factory.entries("java:/jms/remote-mq");
                            factory.user("artemis_user");
                            factory.password("artemis_password");
                        });

                        server.jmsTopic("domain-events", topic -> {
                            topic.entries("java:/jms/topic/domain-events");
                        });

                    }))

            .start();

    // deploy JAX-RS resources
    swarm.deploy(
            ShrinkWrap
                    .create(JAXRSArchive.class)
                    .addAllDependencies());

下面是不起作用的YAML配置:

代码语言:javascript
复制
swarm:

  datasources:

    data-sources:
      # SWARM BUG: at least one DS without JNDI binding shall be provided ~> https://issues.jboss.org/browse/SWARM-1447
      CommonDSDef:
        driver-name: postgresql
        connection-url: "jdbc:postgresql://postgres:5432/commons"
        user-name: commons_user
        password: commonsTestDb
        jta: true

      CommonDS:
        driver-name: postgresql
        connection-url: "jdbc:postgresql://postgres:5432/commons"
        user-name: commons_user
        password: commonsTestDb
        jndi-name: java:/jdbc/dbpool
        jta: true

  network:
    socket-binding-groups:
      standard-sockets:
        outbound-socket-bindings:
              remote-activemq:
                remote-host: artemis
                remote-port: 61616

  messaging:
    servers:
      default:
        remote-connectors:
            remote-activemq:
              socket-binding: remote-activemq

        pooled-connection-factories:
            remote-activemq:
              connectors: remote-activemq
              entries: java:/jms/remote-mq
              user: artemis_user
              password: artemis_password

        jms-topics:
            domain-events:
              entries: java:/jms/topic/domain-events


  deployment:
    dummy-app:
      jaxrs:
        application-path: /

在尝试使用配置时,我在日志中得到以下错误:

代码语言:javascript
复制
    2017-10-28 19:36:31,219 ERROR [org.jboss.as.controller.management-operation] (main) WFLYCTL0013: Operation ("add") failed - address: (("deployment" => "commons-mocks-2.0.0-SNAPSHOT.war")) - failure description: {
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.ra.remote-activemq"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"commons-mocks-2.0.0-SNAPSHOT.war\".component.DummyDomainEventListener.CREATE is missing [jboss.ra.remote-activemq]"]
}
    2017-10-28 19:36:31,221 ERROR [org.jboss.as.server] (main) WFLYSRV0021: Deploy of deployment "commons-mocks-2.0.0-SNAPSHOT.war" was rolled back with the following failure message: 
{
    "WFLYCTL0412: Required services that are not installed:" => ["jboss.ra.remote-activemq"],
    "WFLYCTL0180: Services with missing/unavailable dependencies" => ["jboss.deployment.unit.\"commons-mocks-2.0.0-SNAPSHOT.war\".component.DummyDomainEventListener.CREATE is missing [jboss.ra.remote-activemq]"]
}

在此之后,会抛出大量其他相关错误,最终服务器将停止运行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-29 18:34:45

数据源的问题是在https://issues.jboss.org/browse/SWARM-1486下提交的,我在这里添加了一个解释。

messaging的问题是文档问题--正确的名称是messaging-activemq。这已经在文档重构:messaging中得到修正。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46999133

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档