Olá pessoal, estou iniciando estudos de EJB 3.1
e estou tentando configurar a conexão com o banco de dados do projeto.
Porem não queria deixar a configuração do banco no datasource no servidor.
Estou tentando configurar a conexão no projeto mesmo, não encontrei nenhum exemplo assim na internet.
Com EJB isso é possivel ?
Estou tentando fazer isso, porem estou tomando o seguinte erro.
12:46:45,341 INFO [org.jboss.modules] JBoss Modules version 1.0.2.GA
12:46:45,622 INFO [org.jboss.msc] JBoss MSC version 1.0.1.GA
12:46:45,684 INFO [org.jboss.as] JBoss AS 7.0.2.Final "Arc" starting
12:46:46,683 WARN [org.jboss.as] No security realm defined for native management service, all access will be unrestricted.
12:46:46,698 INFO [org.jboss.as] creating http management service using network interface (management) port (9990)
12:46:46,762 WARN [org.jboss.as] No security realm defined for http management service, all access will be unrestricted.
12:46:46,777 INFO [org.jboss.as.logging] Removing bootstrap log handlers
12:46:46,808 INFO [org.jboss.as.connector.subsystems.datasources] (Controller Boot Thread) Deploying JDBC-compliant driver class org.h2.Driver (version 1.2)
12:46:46,824 INFO [org.jboss.as.clustering.infinispan.subsystem] (Controller Boot Thread) Activating Infinispan subsystem.
12:46:46,933 INFO [org.jboss.as.naming] (Controller Boot Thread) JBAS011800: Activating Naming Subsystem
12:46:46,964 INFO [org.jboss.as.osgi] (Controller Boot Thread) JBAS011910: Activating OSGi Subsystem
12:46:46,996 INFO [org.jboss.as.security] (Controller Boot Thread) Activating Security Subsystem
12:46:46,996 INFO [org.jboss.as.naming] (MSC service thread 1-4) JBAS011802: Starting Naming Service
12:46:47,011 INFO [org.jboss.remoting] (MSC service thread 1-4) JBoss Remoting version 3.2.0.Beta2
12:46:47,027 INFO [org.xnio] (MSC service thread 1-4) XNIO Version 3.0.0.Beta3
12:46:47,058 INFO [org.xnio.nio] (MSC service thread 1-4) XNIO NIO Implementation Version 3.0.0.Beta3
12:46:47,370 INFO [org.apache.catalina.core.AprLifecycleListener] (MSC service thread 1-1) The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: C:\Program Files (x86)\Java\jre6\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;native;C:/Program Files (x86)/Java/jre6/bin/client;C:/Program Files (x86)/Java/jre6/bin;C:/Program Files (x86)/Java/jre6/lib/i386;C:\Program Files\Common Files\Microsoft Shared\Windows Live;C:\Program Files (x86)\Common Files\Microsoft Shared\Windows Live;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\TortoiseSVN\bin;C:\Program Files (x86)\Java\jdk1.6.0_25\bin;C:\Program Files (x86)\Windows Live\Shared;D:\Instala?äes\Eclipse\eclipse-jee-juno;;.
12:46:47,401 INFO [org.jboss.as.ee] (Controller Boot Thread) Activating EE subsystem
12:46:48,212 INFO [org.apache.coyote.http11.Http11Protocol] (MSC service thread 1-1) Starting Coyote HTTP/1.1 on http-localhost-127.0.0.1-8080
12:46:48,291 INFO [org.jboss.as.connector] (MSC service thread 1-1) Starting JCA Subsystem (JBoss IronJacamar 1.0.3.Final)
12:46:48,338 INFO [org.jboss.as.connector.subsystems.datasources] (MSC service thread 1-4) Bound data source [java:jboss/datasources/ExampleDS]
12:46:48,369 INFO [org.jboss.as.jmx.JMXConnectorService] (MSC service thread 1-3) Starting remote JMX connector
12:46:48,401 INFO [org.jboss.as.remoting] (MSC service thread 1-4) Listening on /127.0.0.1:9999
12:46:48,494 INFO [org.jboss.as.deployment] (MSC service thread 1-4) Started FileSystemDeploymentService for directory D:\Jboss\standalone\deployments
12:46:48,510 INFO [org.jboss.as.deployment] (DeploymentScanner-threads - 1) Found AppTesteEAR.ear in deployment directory. To trigger deployment create a file called AppTesteEAR.ear.dodeploy
12:46:48,510 INFO [org.jboss.as] (Controller Boot Thread) JBoss AS 7.0.2.Final "Arc" started in 3465ms - Started 93 of 148 services (55 services are passive or on-demand)
12:46:48,525 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) Starting deployment of "AppTesteEAR.ear"
12:46:48,588 INFO [org.jboss.as.server.deployment] (MSC service thread 1-4) Starting deployment of "AppTesteWeb.war"
12:46:48,588 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Starting deployment of "AppTesteEJB.jar"
12:46:48,947 INFO [org.jboss.jpa] (MSC service thread 1-4) read persistence.xml for apptesteejb
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added javax.persistence.api, javaee.api, org.jboss.as.jpa, org.javassist dependencies to AppTesteEAR.ear
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added (default provider) org.hibernate dependency to application deployment (since 1 PU(s) didn't specify jboss.as.jpa.providerModule)
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added org.hibernate dependency to application deployment
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added javax.persistence.api, javaee.api, org.jboss.as.jpa, org.javassist dependencies to AppTesteEJB.jar
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added (default provider) org.hibernate dependency to application deployment (since 1 PU(s) didn't specify jboss.as.jpa.providerModule)
12:46:49,118 INFO [org.jboss.as.jpa] (MSC service thread 1-2) added org.hibernate dependency to application deployment
12:46:49,134 INFO [org.jboss.as.jpa] (MSC service thread 1-3) added javax.persistence.api, javaee.api, org.jboss.as.jpa, org.javassist dependencies to AppTesteWeb.war
12:46:49,212 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named Calculadora in deployment unit subdeployment "AppTesteEJB.jar" of deployment "AppTesteEAR.ear" are as follows:
java:global/AppTesteEAR/AppTesteEJB/Calculadora!sessionbeans.ICalculadora
java:app/AppTesteEJB/Calculadora!sessionbeans.ICalculadora
java:module/Calculadora!sessionbeans.ICalculadora
java:global/AppTesteEAR/AppTesteEJB/Calculadora
java:app/AppTesteEJB/Calculadora
java:module/Calculadora
12:46:49,212 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-4) JNDI bindings for session bean named Livro in deployment unit subdeployment "AppTesteEJB.jar" of deployment "AppTesteEAR.ear" are as follows:
java:global/AppTesteEAR/AppTesteEJB/Livro!br.com.ejb.model.ILivro
java:app/AppTesteEJB/Livro!br.com.ejb.model.ILivro
java:module/Livro!br.com.ejb.model.ILivro
java:global/AppTesteEAR/AppTesteEJB/Livro
java:app/AppTesteEJB/Livro
java:module/Livro
12:46:49,430 INFO [org.jboss.jpa] (MSC service thread 1-4) starting Persistence Unit Service 'AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb'
12:46:49,837 INFO [org.hibernate.annotations.common.Version] (MSC service thread 1-4) HCANN000001: Hibernate Commons Annotations {4.0.0.CR2}
12:46:49,852 INFO [org.hibernate.Version] (MSC service thread 1-4) HHH00412:Hibernate Core {4.0.0.CR2}
12:46:49,852 INFO [org.hibernate.cfg.Environment] (MSC service thread 1-4) HHH00206:hibernate.properties not found
12:46:49,852 INFO [org.hibernate.cfg.Environment] (MSC service thread 1-4) HHH00021:Bytecode provider name : javassist
12:46:49,899 INFO [org.hibernate.ejb.Ejb3Configuration] (MSC service thread 1-4) HHH00204:Processing PersistenceUnitInfo [
name: apptesteejb
...]
12:46:49,993 WARN [org.hibernate.service.jdbc.connections.internal.ConnectionProviderInitiator] (MSC service thread 1-4) HHH00022:c3p0 properties were encountered, but the org.hibernate.service.jdbc.connections.internal.C3P0ConnectionProvider provider class was not found on the classpath; these properties are going to be ignored.
12:46:50,008 INFO [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl] (MSC service thread 1-4) HHH00402:Using Hibernate built-in connection pool (not for production use!)
12:46:50,008 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.persistenceunit."AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb": org.jboss.msc.service.StartException in service jboss.persistenceunit."AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb": Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1780) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) [:1.6.0_37]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.6.0_37]
at java.lang.Thread.run(Unknown Source) [:1.6.0_37]
Caused by: javax.persistence.PersistenceException: [PersistenceUnit: apptesteejb] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:908)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:884)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at org.jboss.as.jpa.service.PersistenceUnitService.createContainerEntityManagerFactory(PersistenceUnitService.java:143)
at org.jboss.as.jpa.service.PersistenceUnitService.start(PersistenceUnitService.java:77)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1824) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1759) [jboss-msc-1.0.1.GA.jar:1.0.1.GA]
... 3 more
Caused by: org.hibernate.HibernateException: Specified JDBC Driver org.postgresql.Driver class not found
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:102)
at org.hibernate.service.internal.BasicServiceRegistryImpl.configureService(BasicServiceRegistryImpl.java:80)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:145)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:118)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.buildJdbcConnectionAccess(JdbcServicesImpl.java:208)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:85)
at org.hibernate.service.internal.BasicServiceRegistryImpl.configureService(BasicServiceRegistryImpl.java:80)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:145)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:118)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:70)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2253)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2249)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1720)
at org.hibernate.ejb.EntityManagerFactoryImpl.<init>(EntityManagerFactoryImpl.java:76)
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:899)
... 9 more
Caused by: java.lang.ClassNotFoundException: org.postgresql.Driver from [Module "org.hibernate:main" from local module loader @7a84e4 (roots: D:\Jboss\modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:191)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:361)
at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:333)
at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:310)
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:103)
at java.lang.Class.forName0(Native Method) [:1.6.0_37]
at java.lang.Class.forName(Unknown Source) [:1.6.0_37]
at org.hibernate.internal.util.ReflectHelper.classForName(ReflectHelper.java:191)
at org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:99)
... 23 more
12:46:50,180 INFO [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-3) Inicializando Mojarra 2.1.3 (SNAPSHOT 20110825) para o contexto '/AppTesteWeb'
12:46:50,227 INFO [org.hibernate.service.jdbc.connections.internal.DriverManagerConnectionProviderImpl] (Finalizer) HHH00030:Cleaning up connection pool [null]
12:46:51,334 INFO [org.hibernate.validator.util.Version] (MSC service thread 1-3) Hibernate Validator 4.2.0.Final
12:46:51,403 AVISO [javax.enterprise.resource.webcontainer.jsf.managedbean] (MSC service thread 1-3) JSF1074: O bean gerenciado denominado 'calculadoraManagedBean' já foi registrado. Substituindo o tipo de classe do bean gerenciado managedbean.CalculadoraManagedBean por managedbean.CalculadoraManagedBean.
12:46:51,840 INFO [org.primefaces.webapp.PostConstructApplicationEventListener] (MSC service thread 1-3) Running on PrimeFaces 3.3.1
12:46:51,902 INFO [org.jboss.web] (MSC service thread 1-3) registering web context: /AppTesteWeb
12:46:52,120 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 2) Deployment of "AppTesteEAR.ear" was rolled back with failure message {"Failed services" => {"jboss.persistenceunit.\"AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb\": Failed to start service"}}
12:46:52,136 INFO [org.jboss.as.server.deployment] (MSC service thread 1-3) Stopped deployment AppTesteEJB.jar in 22ms
12:46:52,136 INFO [org.jboss.as.server.deployment] (MSC service thread 1-2) Stopped deployment AppTesteWeb.war in 25ms
12:46:52,136 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment AppTesteEAR.ear in 26ms
12:46:52,136 ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 1) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Failed services" => {"jboss.persistenceunit.\"AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb\"" => "org.jboss.msc.service.StartException in service jboss.persistenceunit.\"AppTesteEAR.ear/AppTesteEJB.jar#apptesteejb\": Failed to start service"}}}}
e meu persistence.xml está assim
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="apptesteejb" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/apptesteejb"/>
<property name="hibernate.connection.username" value="postgres" />
<property name="hibernate.connection.password" value="postgres" />
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.c3p0.acquireIncrement" value="50"/>
<property name="hibernate.c3p0.idleConnectionTestPeriod" value="60"/>
<property name="hibernate.c3p0.maxPoolSize" value="100"/>
<property name="hibernate.c3p0.minPoolSize" value="10"/>
<property name="hibernate.c3p0.maxStatements" value="200"/>
<property name="hibernate.c3p0.unreturnedConnectionTimeout" value="60"/>
</properties>
</persistence-unit>
</persistence>
O erro pelo que entendi, mostra que o driver não foi encontrado.
Porem criei uma pasta LIB dentro do META-INF do projeto EJB.
e adicionei o driver nos jars do projeto.
Isso eu estou fazendo errado ?
Como referencio o driver pro projeto EJB achar o mesmo ?