为GlassFish2.x Cargo部署设置资源

时间:2010-11-02 16:02:36

标签: maven-2 glassfish cargo

我正在尝试使用Maven2和Cargo为GlassFish 2.x项目进行集成测试。我终于让Cargo尝试部署我的EAR,但由于未配置数据源,因此无法启动。该应用程序还依赖于一些JMS队列和连接工厂 - 如何添加这些?

Cargo Glassfish 2.x plugin表示不支持现有配置,所以我不能这样做。

使用maven-glassfish-plugin是一种选择,但我们也运行OC4J,因此首选货物解决方案。

编辑:资源包括:1个JDBC连接池,1个JDBC资源,4个JMS队列,2个JMS连接工厂和一个自定义安全领域(梨树可选)。领域需要在login.conf中输入一个条目,如:

myRealm {
    uk.co.mycom.MyGlassFishLoginModule required;
};

1 个答案:

答案 0 :(得分:1)

肯定(我从未使用过这个)但是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之外的其他资源,我看到几个线程报告说建议的方法不适用于任何资源(如JMS资源)的GlassFish v2。我的坏。

因此,鉴于当前状态,您的选项是(IMO):

  • 促使Cargo为GlassFish v2提供“现有”配置实施
  • 按照建议使用maven-glassfish-plugin

我没有更好的建议。