eclipse ang glassfish v3.0中的glassfish-resource.xml和persistence单元

时间:2011-11-14 11:59:59

标签: eclipse jpa glassfish persistence.xml

我在eclipse中创建了一个Web项目并添加了glassfish-resource.xml init并使用我的数据库url对其进行了配置。 我还在我的项目中添加了一个persistence.xml单元,并为glassfish-resource.xml中定义的数据源添加了一个jta-datasource,但是当我在idefish上部署应用程序时,我得到的错误是: 查询在SerialContext

中的'java:module / jdbc / sportal'失败

my glassfish-resource.xml:

<resources>
<jdbc-connection-pool name="java:module/jdbc/sportalPool"
    res-type="javax.sql.DataSource" datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource"
    pool-resize-quantity="1" max-pool-size="5" steady-pool-size="0"
    statement-timeout-in-seconds="30">
    <property name="User" value="root"></property>
    <property name="Password" value="1234"></property>
    <property name="portNumber" value="3306"></property>
    <property name="dataBaseName" value="sportal"></property>
    <property name="serverName" value="192.168.2.7"></property>
</jdbc-connection-pool>
<jdbc-resource pool-name="java:module/jdbc/sportalPool"
    jndi-name="java:module/jdbc/sportal"></jdbc-resource>

我的persistence.xml是:

<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="PU" transaction-type="JTA">
    <jta-data-source>java:module/jdbc/sportal</jta-data-source>
    <properties>
        <property name="eclipselink.ddl-generation" value="create-tables" />
        <property name="eclipselink.logging.level" value="FINE" />
    </properties>
</persistence-unit>

我也用“java:app / ...”而不是“java:module / ...”得到同样的错误。

我的glassfish版本是Open edition 3.0.1,JPA2,eclipse Helios

RGDS

2 个答案:

答案 0 :(得分:0)

很可能在Glassfish启动时不会创建jdbc资源。转到Glassfish管理控制台,查看“JDBC资源”以检查您的运动资源是否已创建。

我不知道Eclipse Glassfish模块是否可以使用glassfish-resources.xml自动执行此操作,我所知道的是Netbeans 7在Glassfish启动时自动创建了jdbc资源(或者在我对数据库进行反向工程时创建了它表?)?

无论哪种方式,您都必须首先创建JDBC资源。

答案 1 :(得分:-1)

尝试仅使用“jdbc / sportal”作为JNDI和DS名称,前缀可能会令人困惑。