我不确定(我从未使用过这个),但是 IIRC,您应该能够将数据源配置放在一个sun-resources.xml
文件中并将其打包META-INF/sun-resources.xml
到您的 EAR 中,并且 GlassFish 应该在部署时创建资源。
这是一个例子sun-resources.xml
:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//Sun Microsystems Inc.//DTD Application Server 9.0 Domain//EN" "sun-resources_1_3.dtd">
<resources>
<jdbc-connection-pool name="SPECjPool" steady-pool-size="100"
max-pool-size="150" max-wait-time-in-millis="60000"
pool-resize-quantity="2" idle-timeout-in-seconds="300"
is-isolation-level-guaranteed="true"
is-connection-validation-required="false"
connection-validation-method="auto-commit"
fail-all-connections="false"
datasource-classname="oracle.jdbc.pool.OracleDataSource">
<property name="URL"
value="jdbc:oracle:thin:@iasperfsol12:1521:specdb"/>
<property name="User" value="spec"/>
<property name="Password" value="spec"/>
<property name="MaxStatements" value="200"/>
<property name="ImplicitCachingEnabled" value="true"/>
</jdbc-connection-pool>
<jdbc-resource enabled="true" pool-name="SPECjPool"
jndi-name="jdbc/SPECjDB"/>
</resources>
试试看。
资源
谢谢,那行得通。数据源似乎正常,并且应用程序已部署。但是,从您链接的文档中,我看不到如何添加我需要的其他东西(在我的问题中编辑了更多细节)。该解决方案还意味着我将不得不(使用配置文件来?)为 IT 构建不同的 EAR,这是不完美的。
我不知何故错过了您想要创建除 Datasources 之外的其他资源,并且我看到几个线程报告建议的方法不适用于 GlassFish v2 的任何资源(如 JMS 资源)。我的错。
因此,鉴于当前状态,您的选择是(IMO):
- 为 Cargo 做出贡献,为 GlassFish v2 提供“现有”配置实现
- 按照您的建议使用 maven-glassfish-plugin
我没有更好的建议。