In Wildfly 10 möchte ich einige der Anmerkungen einer MDB auf den zugehörigen Ressourcenadapter verschieben.Können in Wildfly 10 die MDB-Lookup-Eigenschaften in der Datei standalone-full.xml angegeben werden, anstatt zur Kompilierzeit im Java-Quellcode gebunden zu werden?
Nach Connect a pooled-connection-factory to a Remote Artemis Server könnte man die MDB mit Anmerkungen versehen (hier aus der referenzierten Seite kopiert) folgt:
@ResourceAdapter("remote-artemis")
@MessageDriven(name = "MyMDB", activationConfig = {
@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
@ActivationConfigProperty(propertyName = "destination", propertyValue = "myQueue"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")
})
public class MyMDB implements MessageListener {
//
}
Gibt es eine Möglichkeit, die Lookup-Entscheidung von der Kompilierung zu verschieben Zeit Aufruf? Ich möchte die Werte der Eigenschaften „useJNDI“ angeben und „Ziel“ in meinem Standalone-full.xml
Ich versuchte, das MDB mit Anmerkungen versehen, wie folgt:
@ResourceAdapter("my-remote")
@MessageDriven(name = "MyMDB", activationConfig = {
//try specifying the next 2 properties in the configuration file
//@ActivationConfigProperty(propertyName = "useJNDI", propertyValue = "false"),
//@ActivationConfigProperty(propertyName = "destination", propertyValue = "myQueue"),
@ActivationConfigProperty(propertyName = "destinationType", propertyValue = "javax.jms.Queue"),
@ActivationConfigProperty(propertyName = "acknowledgeMode", propertyValue = "Auto-acknowledge")
})
public class MyMDB implements MessageListener {
//
}
Und dann konfiguriert „my- remote“in der Standalone-full.xml wie folgt:
<pooled-connection-factory name="my-remote" entries="jms/RemoteCF"
connectors="batch-connector" consumer-window-size="0"
useJNDI="false" destination="myQueue"
user="user" password="password" />
Aber die folgende Fehlermeldung erhalten:
Message: WFLYCTL0376: Unexpected attribute 'useJNDI' encountered. Valid attributes are: 'entries, discovery-group, connectors, ha, client-failure-check-period, connection-ttl, call-timeout, call-failover-timeout, consumer-window-size, consumer-max-rate, confirmation-window-size, producer-window-size, producer-max-rate, protocol-manager-factory, compress-large-messages, cache-large-message-client, min-large-message-size, client-id, dups-ok-batch-size, transaction-batch-size, block-on-acknowledge, block-on-non-durable-send, block-on-durable-send, auto-group, pre-acknowledge, retry-interval, retry-interval-multiplier, max-retry-interval, reconnect-attempts, failover-on-initial-connection, connection-load-balancing-policy-class-name, use-global-pools, scheduled-thread-pool-max-size, thread-pool-max-size, group-id, transaction, user, password, min-pool-size, use-auto-recovery, max-pool-size, managed-connection-pool, enlistment-trace, initial-message-packet-size, initial-connect-attempts'
Müssen die Lookup-Eigenschaften zur Kompilierzeit angegeben werden?
Wenn ich eine Wildfly-Instanz brauche, um mit jndi nachzuschlagen, und eine andere, die den Nicht-JNDI-Namen verwendet, muss ich wirklich zwei MDBs erstellen, die nur leicht anders kommentiert sind?
Wenn Ihr Resort-Adapter in der XML-Datei konfiguriert ist, sollten Sie keine MDB-Anmerkungen außer @ResourceAdapter benötigen. – Nicholas