I added a testNG test very similar to EJB3IntegrationTest CaveatEmptor-JPA Hibernate sample to my current project. It's not a smooth ride. Finally, I still get the following error (ANT testng task output). Hibernate version are as the followings:
Hibernate-core: 3.2
Hibernate-annotation: 3.3
Hibernate-entitymanager: 3.3.2
Hibernate-validator: 3.0.0.
I do see org.hibernate.cfg.AnnotationConfiguration.setProperty(Ljava/lang/String;Ljava/lang/String;) in the Javadoc. Appreciate if somebody can help.
Code:
[testng] 13:11:42,634 ERROR org.jboss.kernel.plugins.dependency.AbstractKernelController:350 - Error installing to Start: name=persistence.units:jar=classes.jar,unitName=pandaDS state=Create
[testng] java.lang.NoSuchMethodError: org.hibernate.cfg.AnnotationConfiguration.setProperty(Ljava/lang/String;Ljava/lang/String;)Lorg/hibernate/cfg/AnnotationConfiguration;
[testng] at org.hibernate.ejb.Ejb3Configuration.setProperty(Ejb3Configuration.java:535)
[testng] at org.hibernate.ejb.Ejb3Configuration.setDataSource(Ejb3Configuration.java:149)
[testng] at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:399)
[testng] at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:131)
[testng] at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[testng] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
[testng] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
[testng] at java.lang.reflect.Method.invoke(Method.java:597)
[testng] at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
[testng] at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:107)
[testng] at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
[testng] at org.jboss.kernel.plugins.dependency.KernelControllerContextActions.dispatchJoinPoint(KernelControllerContextActions.java:100)
[testng] at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$LifecycleAction.installAction(KernelControllerContextActions.java:582)
[testng] at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$KernelControllerContextAction.install(KernelControllerContextActions.java:175)
[testng] at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
[testng] at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
[testng] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:593)
[testng] at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:346)
[testng] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:438)
[testng] at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:379)
[testng] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:225)
[testng] at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:151)
[testng] at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:79)
[testng] at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:73)
[testng] at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:91)
[testng] at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:626)
[testng] at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:475)
[testng] at org.jboss.ejb3.embedded.EJB3StandaloneDeployer.start(EJB3StandaloneDeployer.java:460)
[testng] at org.jboss.ejb3.embedded.EJB3StandaloneBootstrap.scanClasspath(EJB3StandaloneBootstrap.java:252)
[testng] at com.ceg.panda.test.core.EJBIntegrationTest.startContainer(EJBIntegrationTest.java:52)
Codes excerpt in EJBIntegrationTest
Code:
EJB3StandaloneBootstrap.boot(null);
EJB3StandaloneBootstrap.deployXmlResource(deployBeansXml);
EJB3StandaloneBootstrap.scanClasspath(scanClasspath.replace("/", File.separator));
jndi = new InitialContext();
deployed bean xml has the followings:
Code:
<bean name="pandaDatasourceFactory"
class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource">
<property name="jndiName">java:/pandaDS</property>
<property name="driverClass">oracle.jdbc.OracleDriver</property>
<property name="connectionURL">jdbc:oracle:thin:XXXXXX
</property>
<property name="userName">panda_user</property>
<property name="password">XXXX</property>
<property name="minSize">0</property>
<property name="maxSize">10</property>
<property name="blockingTimeout">1000</property>
<property name="idleTimeout">100000</property>
<property name="transactionManager"><inject bean="TransactionManager"/></property>
<property name="cachedConnectionManager"><inject bean="CachedConnectionManager"/></property>
<property name="initialContextProperties"><inject bean="InitialContextProperties"/></property>
</bean>
<!-- <bean name="pandaDatasource" class="java.lang.Object"> -->
<bean name="pandaDS" class="java.lang.Object">
<constructor factoryMethod="getDatasource">
<factory bean="pandaDatasourceFactory"/>
</constructor>
</bean>