Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我如何定义d<;非jta数据源></非jta数据源>;在persistence.xml中?_Java_Jpa 2.0 - Fatal编程技术网

Java 我如何定义d<;非jta数据源></非jta数据源>;在persistence.xml中?

Java 我如何定义d<;非jta数据源></非jta数据源>;在persistence.xml中?,java,jpa-2.0,Java,Jpa 2.0,如何在persistence.xml中定义 我的项目在Tomcat6和Tomcat7中运行良好 现在我正在使用 支柱2 弹簧3.0.5 JPA 2 JBoss6 我的persistence.xml看起来像这样 <?xml version="1.0" encoding="UTF-8"?> <persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="h

如何在persistence.xml中定义

我的项目在Tomcat6和Tomcat7中运行良好

现在我正在使用

  • 支柱2
  • 弹簧3.0.5
  • JPA 2
  • JBoss6
  • 我的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.hibernate.ejb.HibernatePersistence
    ****
    

    现在我得到了这个例外


    [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost]./icc-web-struts2-1.0.0-SNAPSHOT]]将上下文初始化事件发送到类org.springframework.web.context.ContextLoaderListener的侦听器实例时出现异常:org.springframework.beans.factory.BeanCreationException:创建URL中定义的名为“org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor#0”的bean时出错[vfs:/D:/workspace/icc temp/.metadata/.plugins/org.jboss.ide.eclipse.as.core/jboss_6.x_Runtime_服务器1319268021951/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_服务器1319268021951/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/

    非jta数据源用于定义一个不包含不要使用现有的JTA管理器。如果您对该功能感兴趣,那么它会接受非JTA数据源的JNDI位置(即java:app/jdbc/yourNonJTAsource

    数据源应该在您的应用程序服务器中配置,并且此配置是特定于供应商的。请尝试访问JBoss web管理控制台,并在那里创建/定义池/数据源。如果是这种情况,您可以从persistence.xml中删除这些user/password/url/…内容,因为这些信息将移动到应用程序网络服务器

    如果您完全在容器外部使用persistence.xml,那么您可能不需要非jta或jta数据源,因为您不能依赖容器外部的JNDI


    HTH.

    这是JPA的核心问题,您使用的所有其他技术都是无关的。您是否忘记附加例外?您可能需要更改原始问题以更新现状。