2011-10-21 7 views
0

persistence.xml에서 <non-jta-data-source> </non-jta-data-source>을 어떻게 정의 할 수 있습니까?어떻게 persistence.xml에서 <non-jta-data-source></ non-jta-data-source>를 정의 할 수 있습니까?

내가

  • 제이 보스 6
  • JPA 2

    1. 스트럿츠 2
    2. 봄 3.0.5
    3. 을 사용하고 지금 7

      내 프로젝트는 톰캣 6 톰캣에서 잘 실행

    my 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="axw-db" transaction-type="RESOURCE_LOCAL"> 
        <provider>org.hibernate.ejb.HibernatePersistence</provider> 
        **<non-jta-data-source></non-jta-data-source>** 
        <properties> 
        <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/> 
        <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
        <property name="hibernate.connection.username" value="root"/> 
        <property name="hibernate.connection.password" value="root"/> 
        <property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/abc"/> 
        <property name="hibernate.hbm2ddl.auto" value="create-drop"/> 
        <property name="hibernate.ejb.autodetection" value="class"/> 
        </properties> 
        </persistence-unit> 
        </persistence> 
    
    지금

    내가이 예외를 얻고있다

    [org.apache.catalina.core.ContainerBase. jboss.web]. [로컬 호스트]. [/ ICC-웹 - struts2-1.0.0-SNAPSHOT]] org.springframework.web.context.ContextLoaderListener 클래스의 리스너 인스턴스로 컨텍스트 초기화 이벤트를 보내는 예외 : org.springframework.beans.factory.BeanCreationException : 'org.springframework.dao .annotation.PersistenceExceptionTranslationPostProcessor # 0 'URL에 정의 됨 [vfs :/D : /workspace/icc-temp/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server131926 8021951/deploy/icc-web-struts2.war/WEB-INF/lib/icc-core.jar/core-config.xml] : Bean 초기화에 실패했습니다. 중첩 예외는 org.springframework.beans.factory.BeanCreationException입니다 : 이름이 'entityManagerFactory'인 bean을 생성하는 중 오류가 발생했습니다 [vfs :/D : /workspace/icc-temp/.metadata/.plugins/org.jboss.ide.eclipse .as.core/JBoss_6.x_Runtime_Server1319268021951/deploy/icc-web-struts2.war/WEB-INF/lib/icc-core.jar/core-config.xml] : init 메소드를 호출하지 못했습니다. 중첩 예외는 java.lang.RuntimeException : 검사를 시도하는 중 오류가 발생했습니다. vfs :/D : /workspace/icc-temp/.metadata/.plugins/org.jboss.ide.eclipse.as.core/JBoss_6.x_Runtime_Server1319268021951/deploy/ icc-web-struts2.war/WEB-INF/lib/icc-domain.jar/

    +0

    이것은 핵심 JPA 문제이며 사용중인 다른 모든 기술은 관련이 없습니다. –

    답변

    2

    비 jta-data-source는 기존 JTA 관리자를 사용하지 않는 데이터 소스를 정의하는 데 사용됩니다. 이 기능에 관심이 있다면 JTA가 아닌 데이터 소스의 JNDI 위치 (예 : java : app/jdbc/yourNonJTAsource)를 허용합니다.

    Datasource는 응용 프로그램 서버에서 구성해야하며이 구성은 공급 업체별입니다. JBoss 웹 관리 콘솔에 액세스하여 거기에 풀/데이터 소스를 만들거나 정의하십시오. 그렇다면이 정보가 Application Server로 옮겨지기 때문에 persistence.xml에서 해당 사용자/비밀번호/url/... 항목을 제거 할 수있는 것보다 낫습니다.

    이 persistence.xml을 컨테이너 외부에서 사용하는 경우 컨테이너 외부의 JNDI에 의존 할 수 없으므로 비 jta 또는 jta 데이터 소스는 필요하지 않습니다.

    HTH.

    +0

    이제이 예외가 발생합니다 – Manodip

    +0

    예외를 첨부하는 것을 잊어 버렸습니까? 원래 질문을 변경하여 현상 유지를 업데이트하는 것이 좋습니다. –

    관련 문제