Configurar banco mysql no jboss com hibernate

2 respostas
B

Sempre mexi com hibernate no trabalho em querys simples…
porém agora eu preciso configurar meu banco para utilizar o hibernate… olhei vários tópicos mas não consegui…
por mais simples que eu achei que seria…

[b]alguem pode me ajudar? como configurar o hibernate para manipular meu banco no jboss 7 ?

já tentei configurar pelo wizzard do jboss, mas nada até agora

estou no momento travado nessa exception
Can’t find a deployment unit named null at deployment "WEB.war"
agradeço.[/b]

2 Respostas

hugo.hlcxcx

Aqui tem um tutorial: http://waelson.com.br/?p=1097

B

Obrigado pelo tutorial, mesmo assim preciso de ajuda

Fiz a configuração como vi em um tutorial, da seguinte forma:

[color=#444444]PERSISTENCE.XML dentro de META-INF:[/color][color=red] [/color]

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
    <persistence-unit name="SiamDS" transaction-type="JTA">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jta-data-source>java:/SiamDS</jta-data-source>
        <properties>
            <property name="hibernate.hbm2ddl.auto" value="update"/>
        </properties>
    </persistence-unit>
</persistence>

[color=red] Configuração do DATASOURCE E DO DRIVER NO STANDALONE.XML DO JBOSS 7 :[/color]

<datasource jndi-name="SiamDS" pool-name="SiamDS" enabled="true" jta="true" use-java-context="true" use-ccm="true">
                    <connection-url>
                        jdbc:mysql://localhost:3306/siam
                    </connection-url>
                    <driver>
                        com.mysql
                    </driver>
                    <transaction-isolation>
                        TRANSACTION_READ_COMMITTED
                    </transaction-isolation>
                    <pool>
                        <min-pool-size>
                            10
                        </min-pool-size>
                        <max-pool-size>
                            100
                        </max-pool-size>
                        <prefill>
                            true
                        </prefill>
                        <use-strict-min>
                            false
                        </use-strict-min>
                        <flush-strategy>
                            FailingConnectionOnly
                        </flush-strategy>
                    </pool>
                    <security>
                        <user-name>
                            root
                        </user-name>
                        <password>
                            123
                        </password>
                    </security>
                    <statement>
                        <prepared-statement-cache-size>
                            32
                        </prepared-statement-cache-size>
                        <share-prepared-statements/>
                    </statement>
                </datasource>
                <drivers>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>
                            org.h2.jdbcx.JdbcDataSource
                        </xa-datasource-class>
                    </driver>
                    <driver name="com.mysql" module="com.mysql">
                        <xa-datasource-class>
                            com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
                        </xa-datasource-class>
                    </driver>
                </drivers>

[color=red]
e dentro de[b] jboss-as-web-7.0.2.Final\modules\com\mysql\main

adicionei o MYSQL CONNECTOR , e um arquivo MODULE.XML, da seguinte forma:[/color]

<?xml version="1.0" encoding="UTF-8"?>
 
<!--
  ~ JBoss copyrights
  ~ http://community.jboss.org/wiki/DataSourceConfigurationInAS7
  -->
 
<module xmlns="urn:jboss:module:1.0" name="com.mysql">
  <resources>
    <resource-root path="mysql-connector-java-5.1.21-bin.jar"/>
  </resources>
  <dependencies>
    <module name="javax.api"/>
  </dependencies>
</module>

Ao subir o servidor dá o seguinte erro no console:

[color=red] 12:14:57,789 INFO [org.jboss.as.jpa] (MSC service thread 1-1) added javax.persistence.api, javaee.api, org.jboss.as.jpa, org.javassist dependencies to WEB.war
12:14:57,898 INFO [org.jboss.as.ejb3.deployment.processors.EjbJndiBindingsDeploymentUnitProcessor] (MSC service thread 1-3) JNDI bindings for session bean named PessoaRepository in deployment unit deployment "WEB.war" are as follows:

java:global/WEB/PessoaRepository!repository.PessoaRepository
java:app/WEB/PessoaRepository!repository.PessoaRepository
java:module/PessoaRepository!repository.PessoaRepository
java:global/WEB/PessoaRepository
java:app/WEB/PessoaRepository
java:module/PessoaRepository

12:14:57,947 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-4) MSC00001: Failed to start service jboss.deployment.unit."WEB.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."WEB.war".INSTALL: Failed to process phase INSTALL of deployment "WEB.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:121) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final]
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]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [:1.7.0_01]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [:1.7.0_01]
at java.lang.Thread.run(Unknown Source) [:1.7.0_01]
Caused by: java.lang.RuntimeException: Could not get class configuration for repository.repository due to the following errors: Can't find a deployment unit named null at deployment "WEB.war"
at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:130)
at org.jboss.as.ee.component.deployers.EEClassConfigurationProcessor$1.compute(EEClassConfigurationProcessor.java:122)
at org.jboss.as.ee.component.LazyValue.get(LazyValue.java:40)
at org.jboss.as.ee.component.EEApplicationDescription.getClassConfiguration(EEApplicationDescription.java:183)
at org.jboss.as.ee.component.ClassDescriptionTraversal.run(ClassDescriptionTraversal.java:45)
at org.jboss.as.ee.component.ComponentDescription$DefaultFirstConfigurator.configure(ComponentDescription.java:570)
at org.jboss.as.ee.component.deployers.EEModuleConfigurationProcessor.deploy(EEModuleConfigurationProcessor.java:72)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:115) [jboss-as-server-7.0.2.Final.jar:7.0.2.Final]
... 5 more

12:14:58,156 INFO [org.jboss.as.server.controller] (DeploymentScanner-threads - 1) Deployment of "WEB.war" was rolled back with failure message {"Failed services" => {"jboss.deployment.unit.\"WEB.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"WEB.war\".INSTALL: Failed to process phase INSTALL of deployment \"WEB.war\""},"Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.WEB.WEB.ValidatorFactory missing [ jboss.naming.context.java.module.WEB.WEB ]","jboss.naming.context.java.module.WEB.WEB.Validator missing [ jboss.naming.context.java.module.WEB.WEB ]"]}
12:14:58,162 INFO [org.jboss.as.server.deployment] (MSC service thread 1-1) Stopped deployment WEB.war in 7ms
12:14:58,165 ERROR [org.jboss.as.deployment] (DeploymentScanner-threads - 2) {"Composite operation failed and was rolled back. Steps that failed:" => {"Operation step-2" => {"Failed services" => {"jboss.deployment.unit.\"WEB.war\".INSTALL" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"WEB.war\".INSTALL: Failed to process phase INSTALL of deployment \"WEB.war\""},"Services with missing/unavailable dependencies" => ["jboss.naming.context.java.module.WEB.WEB.ValidatorFactory missing [ jboss.naming.context.java.module.WEB.WEB ]","jboss.naming.context.java.module.WEB.WEB.Validator missing [ jboss.naming.context.java.module.WEB.WEB ]"]}}}

[/color]

TESTE REALIZADO:
package repository;




import javax.ejb.Stateless;

import entity.Pessoa;

@Stateless
public class PessoaRepository extends repository {
	public void salva(){
		getEntityManager().persist(new Pessoa());
	}

}
package repository;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

  
public abstract class repository {
	@PersistenceContext(name="SiamDS")
	EntityManager entityManager;

	protected EntityManager getEntityManager() {
		return entityManager;
	}



}

To quebrando a cabeça para fazer essa conexão, acredito que possa ser um detalhe ou um (grande)vacilo visivel para alguem que saiba ...

:? :(
Agradeço!

Criado 6 de julho de 2012
Ultima resposta 7 de jul. de 2012
Respostas 2
Participantes 2