私はアプリケーションを正常に起動するためにAPIを使用していますが、何らかの理由で中空のuberjarを使用して別のWARからアプリケーションを起動する必要があります。中空のjarを持つカスタムメインメソッドの使い方についての参考文献を見つけることができず、2017.10.1のmainメソッドに関するdeprecation notesのために、私はYAML設定を使用することに決めました。私は変換を行ったが、少なくともメッセージングの割合がconfigsをピックアップしていないことを示す別のエラーが発生しています。参照を掘ることは助けにもならなかった。ここでAPI呼び出しに相当するYAML設定
が動作する方法であって、
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の設定です:
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:/
設定を使用しようとしている間、私はログにエラーを以下の取得:
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]"]
}
その後、他の関連するエラーが発生し、最終的にサーバーが停止します。
それは唯一の問題ではないようですが、少なくともそれは主要なものの1つでした。 JMS接続ファクトリ、コネクタはすべて同じ方法で同じ名前を使用していて、これは何とか野生のものを混乱させていました。返信ありがとう! – mohamnag