Próbuję skonfigurować swoją aplikację z hibernate. korzystam z tego poradnika : http://half-wit4u.blogspot.com/2014/05/spring-web-application-on-wildfly.html. Wyrzuca mi jednak błąd: "JBAS011440: Can't find a persistence unit named my-jpa in deployment".
Moja konfiguracja wygląda następująco ( nie zmieniałem jeszcze nawet żadnych nazw ):
servlet-context:
<!-- Database configuration -->
<jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/postgreSQL"
resource-ref="true" />
<jee:jndi-lookup id="entityManagerFactory" jndi-name="java:comp/env/persistence/my-emf"
expected-type="javax.persistence.EntityManagerFactory" />
<beans:bean id="transactionManager"
class="org.springframework.transaction.jta.JtaTransactionManager">
<beans:property name="transactionManagerName" value="java:/TransactionManager" />
</beans:bean>
<beans:bean class="org.springframework.orm.hibernate4.HibernateExceptionTranslator" />
web.xml
<persistence-unit-ref>
<persistence-unit-ref-name>persistence/my-emf</persistence-unit-ref-name>
<persistence-unit-name>my-jpa</persistence-unit-name>
</persistence-unit-ref>
persistance.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.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_2_0.xsd">
<persistence-unit name="my-jpa" transaction-type="JTA">
<class>com.engineering.pawel.pojo.User</class>
<jta-data-source>java:jboss/datasources/postgreSQL</jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.max_fetch_depth" value="3" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<property name="hibernate.show_sql" value="true" />
<property name="hibernate.jdbc.batch_size" value="100" />
<property name="hibernate.id.new_generator_mappings" value="true" />
<property name="hibernate.transaction.manager_lookup_class" value="org.hibernate.transaction.JBossTransactionManagerLookup" />
<property name="hibernate.transaction.auto_close_session" value="true" />
<property name="javax.persistence.transactionType " value="jta" />
<property name="hibernate.current_session_context_class" value="jta" />
<property name="hibernate.connection.release_mode" value="auto" />
</properties>
</persistence-unit>
</persistence>
Wydaje mi się, że błąd jest w web.xml ale nie wiem jak go ustawić. Jak szukam po sieci to na każdej stronie jest inna metoda ustawiania połącznie z bazą danych. Wybrałem tą ponieważ zależało mi aby użyć jboss-owe datasource oraz aby ustawienie hibernate nie było w bean-ie tylko z xml-u. Według mnie jest tak przejrzyściej.
Mam też wątpliwości czy potrzeba konfigurować tego beana:
<jee:jndi-lookup id="dataSource" jndi-name="java:jboss/datasources/postgreSQL"
resource-ref="true" />
skoro nigdzie nie jest on używany. Dodatkowo w następnym bean-ie również zaciągam ustwienia do bazy danych z jbossa, tylko przez persistance.xml:
<jee:jndi-lookup id="entityManagerFactory" jndi-name="java:comp/env/persistence/my-emf"
expected-type="javax.persistence.EntityManagerFactory" />
Przynajmniej ja to tak rozumiem, jeśli źle to proszę poprawcie mnie :)
Za wszelkie sugestie będę wdzięczny :)