我在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
答案 0 :(得分:0)
很可能在Glassfish启动时不会创建jdbc资源。转到Glassfish管理控制台,查看“JDBC资源”以检查您的运动资源是否已创建。
我不知道Eclipse Glassfish模块是否可以使用glassfish-resources.xml自动执行此操作,我所知道的是Netbeans 7在Glassfish启动时自动创建了jdbc资源(或者在我对数据库进行反向工程时创建了它表?)?
无论哪种方式,您都必须首先创建JDBC资源。
答案 1 :(得分:-1)
尝试仅使用“jdbc / sportal”作为JNDI和DS名称,前缀可能会令人困惑。