Ant*_*oly 4 java-ee maven-plugin glassfish-embedded glassfish-3
我正在尝试按照这种方法为嵌入式glassfish创建数据源.教程和我的代码之间唯一的重要区别是我使用官方maven插件和embedded-glassfish:run目标运行服务器.
pom文件中的JDBC驱动程序存在依赖关系:
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.155</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
和我的 glassfish-resources.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-resource enabled="true" jndi-name="jdbc/myDatasource" object-type="user" pool-name="connectionPool">
<description/>
</jdbc-resource>
<jdbc-connection-pool datasource-classname="org.h2.jdbcx.JdbcDataSource" name="connectionPool" res-type="javax.sql.DataSource">
<property name="URL" value="jdbc:h2:~/Documents/Projetos/DBs/h2/glassfish/glassfish;AUTO_SERVER=TRUE;MVCC=TRUE"/>
<property name="User" value="sa"/>
<property name="Password" value=""/>
<property name="driverClass" value="org.h2.Driver"/>
</jdbc-connection-pool>
</resources>
Run Code Online (Sandbox Code Playgroud)
使用本地glassfish服务器运行良好.但嵌入式实例并不幸运:
03/06/2011 19:26:31 com.sun.enterprise.v3.server.ApplicationLifecycle deploy GRAVE:无效资源:jdbc/myDatasource_ pm java.lang.RuntimeException:无效资源: com.sun.enterprise中的jdbc/myDatasource _pm位于org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)的com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:468)中的.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:539) )org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)at
我很无能......任何人都可以对此有所了解吗?
弄清楚了.glassfish-resources.xml毕竟它与此无关.正确创建并绑定了jdbc资源java:app/jdbc/myDatasource.
我的持久性单元(由Netbeans生成)正在寻找jdbc/myDatasource并找不到任何东西.我最终更改了持久性单元以指向应用程序命名空间:
<jta-data-source>java:app/jdbc/myDatasource</jta-data-source>
Run Code Online (Sandbox Code Playgroud)
另一种选择是使用embedded-glassfish:admin目标来部署具有非标准名称的全局资源(以便我可以使用jdbc/myDatasource).但是标准似乎是最好的方法.
这个主题非常有用.
| 归档时间: |
|
| 查看次数: |
4944 次 |
| 最近记录: |