Erro no persistence.xml

1 resposta
R

Pessoal, estou tentando fazer um exemplo de uma aplicação com EJB3, JPA e JSF no NetBeans 5.5.

Por padrão, o NetBeans deixa o arquivo persistence.xml assim: <?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="ShopTudoPU" transaction-type="RESOURCE_LOCAL"> <jta-data-source>shoptudo</jta-data-source> <propertie/s> </persistence-unit> </persistence>
E ele então cria o arquivo jboss-ds.xml&#58;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;datasources&gt;
  &lt;local-tx-datasource&gt;
    &lt;jndi-name&gt;shoptudo&lt;/jndi-name&gt;
    &lt;connection-url&gt;jdbc&#58;postgresql&#58;//localhost&#58;5432/shoptudo&lt;/connection-url&gt;
    &lt;driver-class&gt;org.postgresql.Driver&lt;/driver-class&gt;
    &lt;user-name&gt;postgres&lt;/user-name&gt;
    &lt;password&gt;postgres&lt;/password&gt;
    &lt;min-pool-size&gt;5&lt;/min-pool-size&gt;
    &lt;max-pool-size&gt;20&lt;/max-pool-size&gt;
    &lt;idle-timeout-minutes&gt;5&lt;/idle-timeout-minutes&gt;
  &lt;/local-tx-datasource&gt;
&lt;/datasources&gt;
Só que quando faço o deploy aparece o erro: Problem starting service persistence.units:ear=ShopTudo.ear,unitName=ShopTudoPU javax.naming.NameNotFoundException: shoptudo not bound
Depois pesquisando, eu vi outras formas de descrever o arquivo persistence.xml e então fiz dessa forma&#58;
&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;persistence version=&quot;1.0&quot; xmlns=&quot;http&#58;//java.sun.com/xml/ns/persistence&quot; xmlns&#58;xsi=&quot;http&#58;//www.w3.org/2001/XMLSchema-instance&quot; xsi&#58;schemaLocation=&quot;http&#58;//java.sun.com/xml/ns/persistence http&#58;//java.sun.com/xml/ns/persistence/persistence_1_0.xsd&quot;&gt;
  &lt;persistence-unit name=&quot;ShopTudoPU&quot; transaction-type=&quot;RESOURCE_LOCAL&quot;&gt;
    &lt;provider&gt;org.hibernate.ejb.HibernatePersistence&lt;/provider&gt;
    &lt;properties&gt;
        &lt;property name=&quot;hibernate.connection.driver_class&quot; value=&quot;org.postgresql.Driver&quot;/&gt;
        &lt;property name=&quot;hibernate.connection.username&quot; value=&quot;postgres&quot;/&gt;
        &lt;property name=&quot;hibernate.connection.password&quot; value=&quot;postgres&quot;/&gt;
        &lt;property name=&quot;hibernate.connection.url&quot; value=&quot;jdbc&#58;postgresql&#58;//localhost&#58;5432/shoptudo&quot;/&gt;
        &lt;property name=&quot;hibernate.dialect&quot; value=&quot;org.hibernate.dialect.PostgreSQLDialect&quot;/&gt;
        &lt;property name=&quot;hibernate.show_sql&quot; value=&quot;true&quot;/&gt;
    &lt;/properties&gt;
  &lt;/persistence-unit&gt;
&lt;/persistence&gt;

Não informando jta-data-source. Vi alguns exemplos na JavaMagazine. Porém, quando novamente faço deploy depois da alteração, aparece o erro:
You have not defined a jta-data-source for a JTA enabled persistence context named[code]

O que pode está acontecendo?

1 Resposta

T

Vc precisa configurar seu datasource “shoptudo” (não basta colocar no persistence.xml). Procure nos diretórios do Jboss o arquivo “postgres-ds.xml” e use-o como base para fazer essa configuração. Depois coloque o arquivo alterado no diretório de deploy.

Criado 3 de maio de 2007
Ultima resposta 3 de mai. de 2007
Respostas 1
Participantes 2