Ошибка: развертывание проекта Maven / Spring / JPA на Glassfish - PullRequest
0 голосов
/ 20 июля 2011

Я не могу развернуть свой проект j2ee на Glassfish ...

Ниже приведено сообщение об ошибке при развертывании этого:

Exception while loading the app : java.lang.Exception: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in ServletContext resource [/WEB-INF/spring/db.xml]: Invocation of init method failed; nested exception is javax.persistence.PersistenceException: [PersistenceUnit: amlPU] Unable to build EntityManagerFactory 

  • Я создал свой проект Maven, используя mvn archetype:generate, и я выбрал фреймворк spring-mvc-jpa.

  • Тогда я создаю сущности. Я создаю DAO, Сервисы и соответствующие юнит-тесты. (Юнит-тесты работают!) У меня есть файл persistence.xml в каталоге main/resources и еще один в test/resources. Первый тип транзакции для JTA и другие RESOURCE-LOCAL.

  • У меня есть два файла пружин в каталоге main/resources и два файла пружин в каталоге test/resources.

** main / resources / application-context-jpa.xml:

<context:annotation-config />
<context:component-scan base-package="**.***********.aml" />

<jee:jndi-lookup id="dataSource" jndi-name="*********"/> 
<jee:jndi-lookup id="entityManagerFactory" jndi-name="META-INF/persistence/amlPU"/>

<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"
    p:entityManagerFactory-ref="entityManagerFactory" />

<tx:annotation-driven transaction-manager="transactionManager"  proxy-target-class="true" /> 

<!-- JPA annotations bean post processor -->
<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />
<!-- Exception translation bean post processor -->

** main/resources/application-context.xml содержит компоненты DAO, "Службы" и "WebService".

  • Я также создал тип ресурсов в пуле соединений Glassfish, и я перехожу сюда:

<jee:jndi-lookup id="dataSource" jndi-name="*********"/>.

По дополнительным вопросам:

Какая версия Glassfish?

  • Glassfish 3.0.1

Кроме того, как выглядит ваш файл persistence.xml?

<persistence-unit name="amlPU" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- JNDI name of the database resource to use -->
<jta-data-source>jdbcAg2rPool</jta-data-source>
<class>**.*****.aml.dom.TScheme</class>
<class>**.*****.aml.dom.TAction</class>
<class>**.*****.aml.dom.TAnnualSalaryRange</class>
<class>**.*****.aml.dom.TAnswer</class>
<class>**.*****.aml.dom.TApprovalInstance</class>
<class>**.*****.aml.dom.TAudit</class>
<class>**.*****.aml.dom.TBroker</class>
<class>**.*****.aml.dom.TCountry</class>
<class>**.*****.aml.dom.TDecisionStatus</class>
<class>**.*****.aml.dom.TDocument</class>
<class>**.*****.aml.dom.TGroup</class>
<class>**.*****.aml.dom.TGroupAction</class>
<class>**.*****.aml.dom.TGroupSchemeType</class>
<class>**.*****.aml.dom.TLinkType</class>
<class>**.*****.aml.dom.TPaymentMode</class>
<class>**.*****.aml.dom.TPerson</class>

<properties>
  <!-- The database dialect to use -->
  <property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect" />
  <!-- log the generated SQL -->
  <property name="hibernate.show_sql" value="true"/>
  <property name="hibernate.connection.autocommit" value="true"/>
  <property name="hibernate.transaction.flush_before_completion" value="true"/>
  <property name="hibernate.cache.provider_class" value="org.hibernate.cache.HashtableCacheProvider"/>
  <property name="hibernate.ejb.cfgfile" value="hibernate.cfg.xml"/> 
  <property name="hibernate.cache.use_second_level_cache" value="true"/>
  <property name="hibernate.cache.use_query_cache" value="true"/>
  </properties>
  </persistence-unit>
  </persistence>

На какую запись jdbc jndi она указывает?

  • jee: jndi-lookup id = "dataSource" jndi-name = "jdbcAg2rPool" />
  • jee: jndi-lookup id = "entityManagerFactory" jndi-name = "META-INF / persistence / amlPU" />

У вас есть этот jdbc, настроенный в вашей конфигурации glassfish или в context.xml?

  • Для теста: в context.xml
  • Остальное в моей стеклянной рыбе
...