Thanks Bert and Milen,
The branch axon-cdi-4.1.x
Java EE example compiles and builds a war-file just fine. However, when I deploy it I get the errors:
WFLYCTL0013: Operation ("add") failed - address: ([("deployment" => "javaee-axon-example-3.3-alpha2-SNAPSHOT.war")]) - failure description: {"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"javaee-axon-example-3.3-alpha2-SNAPSHOT.war\".WeldStartService" => "Failed to start service
Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type CommandGateway with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private org.axonframework.cdi.example.javaee.AccountApplication.commandGateway
at org.axonframework.cdi.example.javaee.AccountApplication.commandGateway(AccountApplication.java:0)
When I include part of the example code, I get the same error even when I include a producer of the Configuration
which seems to be the issue with the above error. I’ll research a bit more as this is not much to go on, but I’m including it here in case you recognise the problem and know of a solution.
To the question of our environment and intended usage: We are running a ‘traditional’ Java EE application server: JBoss EAP 7.3.x which supports Java EE 8. We have no plans to switch to EAP’s XP extension which tracks the Eclipse MicroProfile.
My team is currently migrating an old application. We translate the old application’s data into a stream of events in a new domain model. When we have generated the events, we ‘process’ them thereby persisting them into a new database (PostgreSQL).
At the moment, we are using a home-grown implementation for the events and their processing. Each event class is serialised as JSON and stored as such in the database.
Our plan is to reuse this event structure as we create a replacement for the old application. As we educate ourselves on things like event sourcing, it becomes clear that we’re going to need much more support code, e.g. a hierarchy of commands which can either accept or veto changes. Strict definitions of aggregates will also inform our modelling.
So instead of building everything ourselves, our hope is to leverage an existing solution such as Axon, which is why I’m evaluating the framework.
Hope that sheds a bit of light on our intended usage, but I’m happy to elaborate if things are unclear.
Cheers,
Jacob Grydholt