Olá pessoal! Já procurei a resposta pra essa minha dúvida em vários lugares e nada… então, lá vai:
É possível usar JPA com o servidor Tomcat 6 sem usar JSF?
O que ocorre é que tentei configurar de várias maneiras o datasource no context.xml, o persistence.xml e a forma como meu servlet obtem o EntityManagerFactory e nenhuma alternativa funcionou… o EntityManagerFactory sempre fica nulo… ou seja, não está sendo feita a injeção de dependências.
Tento obter minha fábrica assim:
@PersistenceUnit(unitName="UnidadePersistente")
EntityManagerFactory emf;
pra depois usá-la no servlet
Eis o meu 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="UnidadePersistente" transaction-type="JTA">
<provider>oracle.toplink.essentials.PersistenceProvider</provider>
<jta-data-source>jdbc/TestDB</jta-data-source>
<class>teste.Veiculo</class>
<properties>
<property name="toplink.ddl-generation" value="create-tables"/>
</properties>
</persistence-unit>
</persistence>
E por fim, o context.xml:
<?xml version="1.0" encoding="UTF-8"?>
<Context path="/teste">
<Resource
auth="Container"
driverClassName="org.postgresql.Driver"
maxActive="20"
maxIdle="10"
maxWait="-1"
name="jdbc/TestDB"
password="senha"
type="javax.sql.DataSource"
url="jdbc:postgresql://127.0.0.1:5432/teste"
username="administrador"
/>
</Context>
Eu já trabalho com JPA há algum tempo, porém sempre voltado pra aplicações desktop, nunca tinha me aventurado em uma aplicação web com JPA antes… por isso as dúvidas
Se alguém que já trabalha com JPA e tb usa o Tomcat puder dar alguma dica será de grande valia. Obrigado!