<bean id="sagaRepository" class="org.axonframework.saga.repository.jpa.JpaSagaRepository">
<property name="resourceInjector" ref="sagaInjector"/>
</bean>
Spring config editor in eclipse showing following error.
No constructor with 0 arguments defined in class 'org.axonframework.saga.repository.jpa.JpaSagaRepository'
- No constructor with 0 arguments defined in class
'org.axonframework.saga.repository.jpa.JpaSagaRepository'
Checked docs but nothing jumped at me to fix this. Any thoughts... Cheers
@Component
public class MyEntityManagerProvider implements EntityManagerProvider {
@PersistenceContext
private EntityManager entityManager;
@Override
public EntityManager getEntityManager() {
return entityManager;
}
}
Constructor added as ref to the SagaRepository config
<bean id="sagaRepository" class="org.axonframework.saga.repository.jpa.JpaSagaRepository">
<constructor-arg><ref bean="myEntityManagerProvider"/></constructor-arg>
<property name="resourceInjector" ref="sagaInjector"/>
</bean>
Had a EventStoreModule for custom XStream converters needed to modify that creation to include EntityManagerProvider in JPAEventStore constructor
@Configuration
public class EventStoreModule {
public EventStoreModule(){
}
@Autowired
@Named("myEntityManagerProvider")
EntityManagerProvider entityManagerProvider;
@Bean(name="eventStore")
public JpaEventStore eventStore() {
XStreamEventSerializer eventSerializer = new XStreamEventSerializer();
XStream xStream = eventSerializer.getXStream();
xStream.registerConverter(new JodaMoneyConverter());
xStream.registerConverter(new NamedObjectConverter());
JpaEventStore eventStore = new JpaEventStore(entityManagerProvider, eventSerializer);
return eventStore;
}
}
Initialization of bean failed; nested exception is org.axonframework.util.AxonConfigurationException: Unable to wrap annotated handler.
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:384)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:543)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
Need to research
Cheers...
Deep nested error in stack trace with more relevance below..
java.lang.IllegalArgumentException: IntroductionAdviceSupport implements no interfaces
at org.springframework.aop.support.DefaultIntroductionAdvisor.<init>(DefaultIntroductionAdvisor.java:73)
at org.springframework.aop.framework.AdvisedSupport.addAdvice(AdvisedSupport.java:404)
at org.springframework.aop.framework.AdvisedSupport.addAdvice(AdvisedSupport.java:393)
at org.axonframework.util.AbstractAnnotationHandlerBeanPostProcessor.createJavaProxyInvoker(AbstractAnnotationHandlerBeanPostProcessor.java:100)
at org.axonframework.util.AbstractAnnotationHandlerBeanPostProcessor.postProcessAfterInitialization(AbstractAnnotationHandlerBeanPostProcessor.java:78)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:407)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1461)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:585)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:385)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:284)
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:111)
--
You received this message because you are subscribed to the Google Groups "Axon Framework Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to axonframewor...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
at org.axonframework.util.AbstractAnnotationHandlerBeanPostProcessor.createJavaProxyInvoker(AbstractAnnotationHandlerBeanPostProcessor.java:100)
- @Override | ||
- public Object postProcessAfterInitialization(final Object bean, final String beanName) throws BeansException { | ||
- Class<?> targetClass = bean.getClass(); | ||
- if (isPostProcessingCandidate(targetClass)) { | ||
- Subscribable adapter = initializeAdapterFor(bean); | ||
- managedAdapters.put(beanName, adapter); | ||
- return createAdapterProxy(targetClass, bean, adapter, getAdapterInterface()); | ||
- } | ||
- return bean; | ||
- } |
+ @Override | ||
+ public Object postProcessAfterInitialization(final Object bean, final String beanName) throws BeansException { | ||
+ Class<?> targetClass = bean.getClass(); | ||
+ if (isPostProcessingCandidate(targetClass)) { | ||
+ Subscribable adapter = initializeAdapterFor(bean); | ||
+ managedAdapters.put(beanName, adapter); | ||
+ return createAdapterProxy(targetClass, bean, adapter, getAdapterInterface(), true); | ||
+ } else if (isPostProcessingCandidate(AopProxyUtils.ultimateTargetClass(bean))) { | ||
+ // Java Proxy, find target and inspect that instance | ||
+ try { | ||
+ Object targetBean = ((Advised) bean).getTargetSource().getTarget(); | ||
+ // we want to invoke the Java Proxy if possible, so we create a CGLib proxy that does that for us | ||
+ Object proxyInvokingBean = createJavaProxyInvoker(bean, targetBean); | ||
+ | ||
+ Subscribable adapter = initializeAdapterFor(proxyInvokingBean); | ||
+ managedAdapters.put(beanName, adapter); | ||
+ return createAdapterProxy(targetClass, proxyInvokingBean, adapter, getAdapterInterface(), false); | ||
+ } catch (Exception e) { | ||
+ throw new AxonConfigurationException("Unable to wrap annotated handler.", e); | ||
+ } | ||
+ } | ||
+ return bean; | ||
+ } |
One error deeper below after traversing through the axon function is where this function of createJavaProxyInvoker is looking for an interface on POJO, which does not exist by design. Not sure whey its looking for interfaces.? This was introduced in 1.4.
Caused by: java.lang.IllegalArgumentException: IntroductionAdviceSupport implements no interfaces
at org.springframework.aop.support.DefaultIntroductionAdvisor.<init>(DefaultIntroductionAdvisor.java:73)
at org.springframework.aop.framework.AdvisedSupport.addAdvice(AdvisedSupport.java:404)
at org.springframework.aop.framework.AdvisedSupport.addAdvice(AdvisedSupport.java:393)
<bean
class="org.axonframework.eventhandling.annotation.AnnotationEventListenerBeanPostProcessor">
<property name="executor" ref="taskExecutor" />
</bean>
<bean
class="org.axonframework.commandhandling.annotation.AnnotationCommandHandlerBeanPostProcessor">
<property name="commandBus" ref="commandBus" />
</bean>
Commented these out and thats when error disappeared and become normal. These seemed to be kicking into JavaProxys with the declaration even when they were not supposed to... Not sure why though?
Cheers and thanks again for all the help.. now need to do more testing and then prep for moving to 2.0... the big change
<axon:annotation-config command-bus="commandBus"
executor="taskExecutor" />
<axon:event-bus id="eventBus" />
<bean
class="org.axonframework.eventhandling.annotation.AnnotationEventListenerBeanPostProcessor">
<property name="executor" ref="taskExecutor" />
</bean>
<bean
class="org.axonframework.commandhandling.annotation.AnnotationCommandHandlerBeanPostProcessor">
<property name="commandBus" ref="commandBus" />
</bean>
Still cannot understand why this would break it in 1.4? as it worked very well upto 1.3.3.
Cheers and Thanks...
AggregateIdentifier is unknown in. Make sure the Aggregate Identifier is initialized before registering events.
at org.axonframework.domain.AbstractAggregateRoot.getEventContainer(AbstractAggregateRoot.java:163)
at org.axonframework.domain.AbstractAggregateRoot.registerEvent(AbstractAggregateRoot.java:72)
at org.axonframework.eventsourcing.AbstractEventSourcedAggregateRoot.apply(AbstractEventSourcedAggregateRoot.java:96)
at org.axonframework.eventsourcing.AbstractEventSourcedAggregateRoot.apply(AbstractEventSourcedAggregateRoot.java:75)
Before aggregate would get initialized with super.. Any thoughts.. I will dig deeper.. however wanted to see if anything pops out.
java.lang.IllegalArgumentException: Unsuitable aggregate for this repository: wrong type
at org.axonframework.common.Assert.isTrue(Assert.java:52)
at org.axonframework.repository.AbstractRepository.add(AbstractRepository.java:62)
at org.axonframework.repository.LockingRepository.add(LockingRepository.java:80)
This constructor logic works perfectly working fine in 1.4... so a lot of logic is tied to this strategy and it working before.. Looks like stuck.. anything pops, ideas.. thoughts
Thanks and Cheers...
<axon:snapshotter id="snapshotter"
event-store="eventStore"
executor="taskExecutor"
transaction-manager="transactionManager"/>
<axon:event-sourcing-repository id="myAggregateRepository"
aggregate-type="com.fp.server.MyAggregate" event-bus="eventBus"
event-store="eventStore" >
<axon:snapshotter-trigger snapshotter-ref="snapshotter"
event-count-threshold="5" />
</axon:event-sourcing-repository>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory" />
</bean>
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="tutorial" />
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="databasePlatform" value="${hibernate.sql.dialect}" />
<property name="generateDdl" value="${hibernate.sql.generateddl}" />
<property name="showSql" value="${hibernate.sql.show}" />
</bean>
</property>
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="actualDataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driverclass}" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="20" />
<property name="minPoolSize" value="10" />
</bean>
<bean id="dataSource"
class="org.springframework.jdbc.datasource.IsolationLevelDataSourceAdapter">
<property name="targetDataSource" ref="actualDataSource" />
<property name="isolationLevel" value="2" />
</bean>
in persistence.xml <persistence-unit name="tutorial" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>.......
2013-04-07 13:57:20,669 [taskExecutor-2] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
2013-04-07 13:57:20,669 [taskExecutor-2] ERROR org.hibernate.util.JDBCExceptionReporter - failed batch
2013-04-07 13:57:20,669 [taskExecutor-2] WARN org.axonframework.eventsourcing.AbstractSnapshotter - An attempt to create and store a snapshot resulted in an exception. Exception summary: {}
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1387)
at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1315)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
at org.axonframework.eventstore.jpa.DefaultEventEntryStore.findRedundantSnapshots(DefaultEventEntryStore.java:126)
at org.axonframework.eventstore.jpa.DefaultEventEntryStore.pruneSnapshots(DefaultEventEntryStore.java:97)
at org.axonframework.eventstore.jpa.JpaEventStore.appendSnapshotEvent(JpaEventStore.java:254)
at org.axonframework.eventsourcing.AbstractSnapshotter$CreateSnapshotTask.run(AbstractSnapshotter.java:90)
at org.axonframework.eventsourcing.SpringAggregateSnapshotter$TransactionalRunnableWrapper.run(SpringAggregateSnapshotter.java:137)
at org.axonframework.eventsourcing.AbstractSnapshotter$SilentTask.run(AbstractSnapshotter.java:145)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)
at java.lang.Thread.run(Thread.java:680)
Caused by: org.hibernate.exception.GenericJDBCException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:140)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:128)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:275)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:268)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:184)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:321)
at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:64)
at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:1185)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1261)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)
... 9 more
Caused by: java.sql.BatchUpdateException: failed batch
at org.hsqldb.jdbc.jdbcStatement.executeBatch(Unknown Source)
at org.hsqldb.jdbc.jdbcPreparedStatement.executeBatch(Unknown Source)
at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeBatch(NewProxyPreparedStatement.java:1723)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:70)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:268)
... 17 more
Hibernate: insert into SnapshotEventEntry (eventIdentifier, metaData, payload, payloadRevision, payloadType, timeStamp, aggregateIdentifier, sequenceNumber, type) values (?, ?, ?, ?, ?, ?, ?, ?, ?)
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [1] as [VARCHAR] - 20a08c46-f8c3-402b-a5a2-fd0fed345583
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [2] as [BLOB] - [B@15cd7c6b
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [3] as [BLOB] - [B@65a35ffb
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [4] as [VARCHAR] - <null>
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [5] as [VARCHAR] - com.vrntmgr.server.deal.Deal
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [6] as [VARCHAR] - 2013-04-07T16:40:08.872-04:00
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [7] as [VARCHAR] - AC9378D3-17DF-4D64-B3E8-D31D2A4F5C48
2013-04-07 16:40:08,884 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [8] as [BIGINT] - 52
2013-04-07 16:40:08,885 [taskExecutor-2] TRACE org.hibernate.type.descriptor.sql.BasicBinder - binding parameter [9] as [VARCHAR] - Deal
2013-04-07 16:40:08,887 [taskExecutor-2] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 0, SQLState: null
2013-04-07 16:40:08,887 [taskExecutor-2] ERROR org.hibernate.util.JDBCExceptionReporter - failed batch
2013-04-07 16:40:08,887 [taskExecutor-2] WARN org.axonframework.eventsourcing.AbstractSnapshotter - An attempt to create and store a snapshot resulted in an exception. Exception summary: {}
event-store="eventStore"
executor="taskExecutor"
transaction-manager="transactionManager"/>
...On Wednesday, April 3, 2013 9:49:44 PM UTC-4, coderinabstract wrote:<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-lef
--