2011-10-21 63 views
0

如何在persistence.xml中定義<non-jta-data-source> </non-jta-data-source>我如何在persistence.xml中定義<non-jta-data-source></ non-jta-data-source>?

我的項目在Tomcat中6和Tomcat運行良好7.

現在

我使用

  1. 的Struts 2
  2. 春3.0.5
  3. JPA 2
  4. 的Jboss 6

我的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-web的struts2-1.0.0-SNAPSHOT]]異常將上下文初始化事件發送給類org.springframework.web.context.ContextLoaderListener的監聽器實例:org.springframework.beans.factory.BeanCreationException:創建名爲org.springframework.dao的bean時出錯.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:在URL中定義名稱爲'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/ icj-web-struts2.war/WEB-INF/lib/icc-domain.jar/

+0

這是一個核心的JPA問題,您使用的所有其他技術都是無關緊要的。 –

回答

2

非jta-data-source用於定義不使用現有JTA管理器的數據源。如果您完全對此功能感興趣,那麼它將接受非JTA數據源的JNDI位置(即java:app/jdbc/yourNonJTAsource)。

應該在您的應用程序服務器中配置數據源,並且此配置是供應商特定的。嘗試訪問JBoss Web管理控制檯並在那裏創建/定義池/數據源。如果是這樣的話,你可以從persistence.xml中刪除這些用戶/密碼/ url/...內容,因爲這些信息將被移至應用服務器。

如果您完全在容器外部使用這個persistence.xml,那麼您可能不需要非-jta或jta數據源,因爲您無法依賴容器外部的JNDI。

HTH。

+0

現在我得到這個異常 – Manodip

+0

你忘了附加異常嗎?您可能需要更改原始問題以更新現狀。 –

相關問題