Problema JPA

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”/>

		&lt;property name="hibernate.show_sql" value="true"/&gt; 
		&lt;property name="hibernate.connection.username" value="pront_adm" /&gt;
		&lt;property name="hibernate.connection.password" value="pront_adm" /&gt;
		&lt;property name="hibernate.hbm2ddl.auto" value="update" /&gt;
		&lt;property name="hibernate.format_sql" value="true" /&gt;[/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.,

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!

Ok Vou fazer dessa forma. Informo o andamento.
Desde já obrigado pela antenção de todos!!

[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.

[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.

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>

	&lt;properties&gt;
		&lt;property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect"/&gt;  
		&lt;property name="hibernate.connection.url" value="jdbc:postgresql://localhost:5432/otavio"/&gt;  
		&lt;property name="hibernate.connection.driver_class" value="org.postgresql.Driver"/&gt;

		
		&lt;property name="hibernate.show_sql" value="true"/&gt; 
		&lt;property name="hibernate.connection.username" value="pront_adm" /&gt;
		&lt;property name="hibernate.connection.password" value="pront_adm" /&gt;
		&lt;property name="hibernate.hbm2ddl.auto" value="update" /&gt;
		&lt;property name="show_sql" value="true"/&gt;    
                &lt;property name="format_sql" value="true"/&gt; 
	
	&lt;/properties&gt;
&lt;/persistence-unit&gt;

</persistence>
[/code]

E aí galera… alguém mais para nos ajudar?

experimenta tirar o name=“manager1”

Ops… acho que não. Conforme a documentação tenho que especificar o name para o persistence-unit.
Abraços!

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

Opa… beleza… Paulo Silveira.
Não sabia… irá para a base de conhecimento.
Obrigado pela atenção!!

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.

Opa tinha esquecido, tem sim a configuração do DS e segue ele abaixo;

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;!DOCTYPE datasources
    PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
    "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd"&gt;
&lt;datasources&gt;
   
   &lt;local-tx-datasource&gt;
      &lt;jndi-name&gt;ctrAcessDataSource&lt;/jndi-name&gt;
      &lt;use-java-context&gt;true&lt;/use-java-context&gt;
      &lt;connection-url&gt;jdbc:postgresql://localhost:5432/otavio&lt;/connection-url&gt;
      &lt;driver-class&gt;org.postgresql.Driver&lt;/driver-class&gt;
      &lt;user-name&gt;pront_adm&lt;/user-name&gt;
      &lt;password&gt;pront_adm&lt;/password&gt;
   &lt;/local-tx-datasource&gt;
    
&lt;/datasources&gt;

no seu persistence tenta com isso:

<jta-data-source>java:/ctrAcessDataSource</jta-data-source>

Nada companheiro. Mesma Mensagem!!

Obrigado pela atenção!!