OCESN
Setembro 25, 2009, 2:59pm
#1
Boa Tarde a todos, venho pedir que me auxiliem em um problema que estou a dias e não encontrei solução na nuvem. O mais próxima foi a desse post http://www.guj.com.br/posts/list/16800.java
Seguinte tenha uma arquitetura WEB com JPA, e ao subir o JBoss aparece esse stackTrance
14:39:52,515 INFO [SchemaUpdate] Running hbm2ddl schema update
14:39:52,515 INFO [SchemaUpdate] fetching database metadata
14:39:52,515 ERROR [SchemaUpdate] could not complete schema update
java.lang.UnsupportedOperationException: The user must supply a JDBC connection
at org.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:54)
at org.hibernate.tool.hbm2ddl.SuppliedConnectionProviderConnectionHelper.prepare(SuppliedConnectionProviderConnectionHelper.java:51)
at org.hibernate.tool.hbm2ddl.SchemaUpdate.execute(SchemaUpdate.java:168)
… e aí vai, suprimi o restando do stackTrance, pois o foco é o que está em negrito, e caso alguém achar interessante colocar o restante, por favor, só solicitar.
Dados Relevantes:
Servidor JBoss v5.0
Bibliotecas devidamentes configuradas, aparentemente não é esse o problema.
Arquivo de configuração persistence.xml presente no META-INF do projeto Web, usuário, senha devidamentes configurados também;
[code]
<property name=“hibernate.dialect” value=“org.hibernate.dialect.PostgreSQLDialect”/>
<property name=“URL” value=“jdbc:postgresql://localhost:5432/otavio”/>
<property name=“hibernate.connection.driver_class” value=“org.postgresql.Driver”/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.username" value="pront_adm" />
<property name="hibernate.connection.password" value="pront_adm" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.format_sql" value="true" />[/code]
Enfim, aguardo ajuda dos companheiros gujeiros.
Abraços!!
Cara…
Não me lembro desse XML de cabeça… mas não deveria ser…
… ou algo assim ali não?
Att.,
bronx
Setembro 25, 2009, 3:22pm
#3
Eu uso uma assim e funciona perfeitamente:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/meu_bd</property>
<property name="hibernate.connection.username">meuUsuario</property>
<property name="hibernate.connection.password">minhaSenha</property>
<property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping class="meu.pacote.MinhaClasse" />
</session-factory>
</hibernate-configuration>
Só alterar os valores dos parâmetros e testa!
OCESN
Setembro 25, 2009, 3:40pm
#4
Ok Vou fazer dessa forma. Informo o andamento.
Desde já obrigado pela antenção de todos!!
OCESN
Setembro 25, 2009, 3:49pm
#5
[quote=bronx]Eu uso uma assim e funciona perfeitamente:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost/meu_bd</property>
<property name="hibernate.connection.username">meuUsuario</property>
<property name="hibernate.connection.password">minhaSenha</property>
<property name="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </property>
<property name="show_sql">true</property>
<property name="format_sql">true</property>
<mapping class="meu.pacote.MinhaClasse" />
</session-factory>
</hibernate-configuration>
Só alterar os valores dos parâmetros e testa![/quote]
Não sei se passou despercebido colega bronx, mas estou configurando o persistence.xml.
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
version="1.0">
<persistence-unit name="manager1" transaction-type="JTA">
…
Essa configuração seria para o hibernate.cfg.xml, certo?, ou o JPA utilizando o hibernate deveria configura-lo? no meu conhecimento acho que não. Apenas configurando o persistence.xml.
Obrigado pela ajuda aí mais uma vez.
OCESN
Setembro 25, 2009, 3:51pm
#6
[quote=eltonads]Cara…
Não me lembro desse XML de cabeça… mas não deveria ser…
… ou algo assim ali não?
Att.,
–[/quote]
Valeu pela dica, mas infelizmente ainda persiste o problema.
Obrigado pela atenção!!
Posta seu persistence.xml inteiro pra gente ver.
E a url do seu banco parece estar errada, como o eltonads falou.
OCESN
Setembro 28, 2009, 9:53am
#8
Ops!! Aí está!!
[code]<?xml version=“1.0” encoding=“UTF-8”?>
<persistence 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 "
version=“1.0”>
<persistence-unit name=“manager1” transaction-type=“JTA”>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>ctrAcessDataSource</jta-data-source>
<class>br.com.ota.ctracessbusiness.entity.usuario.Usuario</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/>
<property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/otavio"/>
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.connection.username" value="pront_adm" />
<property name="hibernate.connection.password" value="pront_adm" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="show_sql" value="true"/>
<property name="format_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
[/code]
OCESN
Setembro 29, 2009, 11:53am
#9
E aí galera… alguém mais para nos ajudar?
experimenta tirar o name=“manager1”
OCESN
Setembro 29, 2009, 5:22pm
#11
Ops… acho que não. Conforme a documentação tenho que especificar o name para o persistence-unit.
Abraços!
ctdaa
Setembro 29, 2009, 6:39pm
#12
Eu utilizo dois arquivos de configuração: /src/conf/persistence.xml e o /src/java/hibernate.cfg.xml
Faz diferença?
Exemplo:
Persistence.xml
<?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="facePetsPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>jdbc/petcatalog</jta-data-source>
<class>com.pet.model.Address</class>
<class>com.pet.model.Category</class>
<class>com.pet.model.Item</class>
<class>com.pet.model.Product</class>
<exclude-unlisted-classes>true</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
hibernate.cfg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/petcatalog</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">xxxx</property>
<property name="hibernate.transaction.auto_close_session">true</property>
<property name="hibernate.transaction.flush_before_completion">true</property>
<property name="hibernate.connection.release_mode">auto</property>
</session-factory>
</hibernate-configuration>
Não lembro como configurar certinho pro jboss, mas acho que o seu persistence.xml está errado. Se não estou enganado pra usar JTA tem que utilizar um DS criado pelo container.
[quote=OCESN]Ops… acho que não. Conforme a documentação tenho que especificar o name para o persistence-unit.
Abraços![/quote]
oi ocesn
algumas implementacoes de jpa no container te obrigam a passar o unitName do persistencecontext se voce deu nome aos bois, mesmo que so haja uma unica definicao de persistenceunit! por isso falei pra voce testar sem
OCESN
Setembro 30, 2009, 10:42am
#15
Opa… beleza… Paulo Silveira.
Não sabia… irá para a base de conhecimento.
Obrigado pela atenção!!
OCESN
Setembro 30, 2009, 10:45am
#16
Para o persistence.xml já revi e revi ele aparentemente não me parece errado.
E para o DS criado pelo container qual seria? Então?
Fica na pasta deploy do seu servidor. Faz um bom tempo que não trabalho com o JBoss, mas lembro que existia uma pasta de documentação que continha exemplos para criação de DataSources. Dê um procurada lá e crie um DS pelo JBoss.
OCESN
Setembro 30, 2009, 11:27am
#18
Opa tinha esquecido, tem sim a configuração do DS e segue ele abaixo;
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE datasources
PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
"http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
<datasources>
<local-tx-datasource>
<jndi-name>ctrAcessDataSource</jndi-name>
<use-java-context>true</use-java-context>
<connection-url>jdbc:postgresql://localhost:5432/otavio</connection-url>
<driver-class>org.postgresql.Driver</driver-class>
<user-name>pront_adm</user-name>
<password>pront_adm</password>
</local-tx-datasource>
</datasources>
no seu persistence tenta com isso:
<jta-data-source>java:/ctrAcessDataSource</jta-data-source>
OCESN
Setembro 30, 2009, 2:24pm
#20
Nada companheiro. Mesma Mensagem!!
Obrigado pela atenção!!