How to configure an embedded Ejb to connect to MySql not Hsq
mnrz Oct 21, 2006 9:07 AMHi all
I have a problem connection the embedded Ejb to a database other than Hsqldb that currently used in all Seam examples.
I am using registration example and change its config files to connect to MySql but it doesnt work. I want to use Ejb persistence.
any help greatly appreciated.
here is my config files:
persistence.xml
<persistence> <persistence-unit name="testDatabase"> <provider>org.hibernate.ejb.HibernatePersistence</provider> <!-- --> <jta-data-source>testDatasource</jta-data-source> <properties> <property name="hibernate.hbm2ddl.auto" value="update" /> <property name="hibernate.show_sql" value="true" /> <!-- These are the default for JBoss EJB3, but not for HEM: --> <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider" /> <property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" /> <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" /> </properties> </persistence-unit> </persistence>
jboss-beans.xml:
<?xml version="1.0" encoding="UTF-8"?> <deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_1_0.xsd" xmlns="urn:jboss:bean-deployer:2.0"> <bean name="testDatasourceBootstrap" class="org.jboss.resource.adapter.jdbc.local.LocalTxDataSource"> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="connectionURL"> jdbc:mysql://192.168.0.157:3306/seamtest?autoReconnect=true&useUnicode=true&characterEncoding=UTF8 </property> <property name="userName">root</property> <property name="password">root</property> <property name="jndiName">testDatasource</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="testDatasource" class="java.lang.Object"> <constructor factoryMethod="getDatasource"> <factory bean="testDatasourceBootstrap" /> </constructor> </bean> </deployment>
I get following exception:
(core.Ejb 94 ) starting the embedded EJB container
(xml.BeanSchemaBinding 227 ) You should use the 2.0 version of the Microcontainer xml. xmlns='ur
n:jboss:bean-deployer:2.0'
(local.LocalTxDataSource 117 ) Bound datasource to JNDI name 'java:/DefaultDS'
(local.LocalTxDataSource 117 ) Bound datasource to JNDI name 'testDatasource'
(ejb3.Ejb3DescriptorHandler 1699) adding class annotation org.jboss.annotation.internal.DefaultInterc
eptorMarker to com.seam.web.action.RegisterAction org.jboss.annotation.internal.DefaultInterceptorMarkerImpl@5
f0e7d
(ejb3.Ejb3Deployment 467 ) EJB3 deployment time took: 1656
(ejb3.MCKernelAbstraction 84 ) installing bean: persistence.units:jar=registration-web.jar,unitNam
e=testDatabase with dependencies:
(ejb3.MCKernelAbstraction 87 ) AbstractDependencyMetaData@9719f4{dependency=testDatasource}
(ejb.Version 94 ) Hibernate EntityManager 3.2.0.CR1
(annotations.Version 94 ) Hibernate Annotations 3.2.0.CR1
(cfg.Environment 94 ) Hibernate 3.2 cr2
(cfg.Environment 94 ) hibernate.properties not found
(cfg.Environment 94 ) Bytecode provider name : cglib
(cfg.Environment 94 ) using JDK 1.4 java.sql.Timestamp handling
(ejb.Ejb3Configuration 94 ) Processing PersistenceUnitInfo [
name: testDatabase
...]
(ejb.Ejb3Configuration 94 ) found EJB3 Entity bean: com.seam.dto.User
(ejb.Ejb3Configuration 104 ) Persistence provider caller does not implements the EJB3 spec corre
ctly. PersistenceUnitInfo.getNewTempClassLoader() is null.
(cfg.Configuration 94 ) Reading mappings from resource: META-INF/orm.xml
(ejb.Ejb3Configuration 94 ) [PersistenceUnit: testDatabase] no META-INF/orm.xml found
(cfg.AnnotationBinder 94 ) Binding entity from annotated class: com.seam.dto.User
(annotations.EntityBinder 94 ) Bind entity com.seam.dto.User on table user
(connection.ConnectionProviderFactory 94 ) Initializing connection provider: org.hibernate.ejb.connection.Inj
ectedDataSourceConnectionProvider
(connection.InjectedDataSourceConnectionProvider 94 ) Using provided datasource
(local.LocalTxDataSource 271 ) Throwable while attempting to get a new connection: null
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.jboss.resourc
e.JBossResourceException: Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver, url:
jdbc:mysql://192.168.0.157:3306/seamtest?autoReconnect=true&useUnicode=true&characterE
ncoding=UTF8)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalMa
nagedConnectionFactory.java:177)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(In
ternalManagedConnectionPool.java:579)
at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedCon
nectionPool.java:247)
at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManaged
ConnectionPool.java:540)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionMana
ger2.java:339)
at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.j
ava:301)
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManage
r2.java:392)
at org.jboss.resource.adapter.jdbc.local.LocalTxDataSource$ConnectionManagerDelegate.allocateConnectio
n(LocalTxDataSource.java:78)
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:88)
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.ja
va:69)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:73)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
at org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:350)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.jav
a:119)
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:107
)
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions.dispatchJoinPoint(KernelControll
erContextActions.java:100)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$LifecycleAction.installAction(Ke
rnelControllerContextActions.java:582)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$KernelControllerContextAction.in
stall(KernelControllerContextActions.java:175)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActi
ons.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:226)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:593)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:346)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:438)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:379)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:225)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:151)
at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:
79)
at org.jboss.kernel.plugins.dependency.AbstractKernelController.install(AbstractKernelController.java:
73)
at org.jboss.ejb3.MCKernelAbstraction.install(MCKernelAbstraction.java:91)
at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:626)
at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:475)
at org.jboss.ejb3.embedded.EJB3StandaloneDeployer.start(EJB3StandaloneDeployer.java:460)
at org.jboss.seam.core.Ejb.startup(Ejb.java:50)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.seam.util.Reflections.invoke(Reflections.java:13)
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32)
at org.jboss.seam.Component.callComponentMethod(Component.java:1334)
at org.jboss.seam.Component.callCreateMethod(Component.java:1322)
at org.jboss.seam.Component.newInstance(Component.java:1312)
at org.jboss.seam.Component.getInstance(Component.java:1263)
at org.jboss.seam.Component.getInstance(Component.java:1253)
at org.jboss.seam.contexts.Lifecycle.startup(Lifecycle.java:125)
at org.jboss.seam.contexts.Lifecycle.endInitialization(Lifecycle.java:104)
at org.jboss.seam.init.Initialization.init(Initialization.java:196)
at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:32)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3669)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4104)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:759)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:739)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524)
at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:788)
at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:677)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:473)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:311)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:718)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:442)
at org.apache.catalina.core.StandardService.start(StandardService.java:450)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:683)
at org.apache.catalina.startup.Catalina.start(Catalina.java:537)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:271)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:409)
Caused by: org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL: class:
com.mysql.jdbc.Driver, url:
jdbc:mysql://192.168.0.157:3306/seamtest?autoReconnect=true&useUnicode=true&characterE
ncoding=UTF8
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.getDriver(LocalManagedConnectio
nFactory.java:288)
at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalMa
nagedConnectionFactory.java:168)
... 81 more
(cfg.SettingsFactory 109 ) Could not obtain connection metadata
org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (org.jboss.resource.JBossR
esourceException: Apparently wrong driver class specified for URL: class: com.mysql.jdbc.Driver, url:
jdbc:mysql://192.168.0.157:3306/seamtest?autoReconnect=true&useUnicode=true&characterE
ncoding=UTF8); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; -
nested throwable: (org.jboss.resource.JBossResourceException: Apparently wrong driver class specified for URL:
class: com.mysql.jdbc.Driver, url:
jdbc:mysql://192.168.0.157:3306/seamtest?autoReconnect=true&useUnicode=true&characterE
ncoding=UTF8))
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:94)
at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.ja
va:69)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:73)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:1928)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1211)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:631)
at org.hibernate.ejb.Ejb3Configuration.createEntityManagerFactory(Ejb3Configuration.java:760)
at org.hibernate.ejb.Ejb3Configuration.createContainerEntityManagerFactory(Ejb3Configuration.java:350)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.jav
a:119)
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:55)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:107
)
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions.dispatchJoinPoint(KernelControll
erContextActions.java:100)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$LifecycleAction.installAction(Ke
rnelControllerContextActions.java:582)
at org.jboss.kernel.plugins.dependency.KernelControllerContextActions$KernelControllerContextAction.in
stall(KernelControllerContextActions.java:175)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActi
ons.java:51)
[color]