2016-05-19 12 views
1

grailsでどのように検索しますか? jndiのルックアップは十分単純でなければなりませんが、context.xmlの情報を混乱させ、Config.xmlに "grails.naming.entries"を追加し、resources.groovyにjndi-lookup beanを作成しました。これまでのところ無益でした。 Tomcatのcontext.xmlにJNDIを渡すことができます。だから私は戦争の中に戦争を展開する場合、私は例外を取得しません。grailsでJNDIオブジェクトを作成できません

私config.groovy

grails.naming.entries = [ 
    "java:comp/env/bonitaDS": [ 
      type: 'javax.sql.DataSource', 
      auth: 'Container', 
      description: 'Main datasource', 
      url: "jdbc:mysql://localhost/bonita?useUnicode=yes&characterEncoding=UTF-8", 
      username: "", 
      password: "", 
      driverClassName: "com.mysql.jdbc.Driver",//"com.mysql.jdbc.jdbc2.optional.MysqlXADataSource", 
      maxActive: "8", 
      maxIdle: "4" 
    ], 

    "java:comp/env/bonitaSequenceManagerDS": [ 
      type: 'javax.sql.DataSource', 
      auth: 'Container', 
      description: 'Main datasource', 
      url: 'jdbc:mysql://localhost/bonita?useUnicode=yes&characterEncoding=UTF-8', 
      username: "root", 
      password: "root", 
      driverClassName: 'com.mysql.jdbc.Driver', 
      maxConnectionsPerPartition: "2", 
      minConnectionsPerPartition: "1", 
      partitionCount: "1", 
      acquireIncrement: "5", 
      statementsCacheSize: "100", 
      releaseHelperThreads: "3" 
    ], 

    "java:comp/UserTransaction": [ 
      type: 'com.atomikos.icatch.jta.UserTransactionFactory' 
    ] 
] 

のTomcatのconfフォルダ内のマイcontext.xmlファイル

<Resource name="bonitaSequenceManagerDS" 
      auth="Container" 
      type="javax.sql.DataSource" 
      maxActive="17" 
      minIdle="5" 
      maxWait="10000" 
      initialSize="3" 
      maxPoolSize="15" 
      minPoolSize="3" 
      maxConnectionAge="0" 
      maxIdleTime="1800" 
      maxIdleTimeExcessConnections="120" 
      idleConnectionTestPeriod="30" 
      acquireIncrement="3" 
      validationQuery="SELECT 1" 
      validationInterval="30000" 
      testConnectionOnCheckout="true" 
      removeAbandoned="true" 
      logAbandoned="true" 
      username="" 
      password="" 
      driverClassName="com.mysql.jdbc.Driver" 
      url="jdbc:mysql://localhost:3306/bonita?dontTrackOpenResources=true&amp;useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true"/> 

<Resource name="bonitaDS" 
      auth="Container" 
      type="javax.sql.DataSource" 
      factory="bitronix.tm.resource.ResourceObjectFactory"  
      uniqueName="jdbc/bonitaDSXA" /> 

エラー:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'transactionManager' defined in file [C:\bonita-home\server\platform\conf\services\cfg-bonita-transaction-api-impl.xml]: Invocation of init method failed; nested exception is javax.naming.NameNotFou ion: Name [java:comp/UserTransaction] not bound; 2 bindings: [java:comp/env/bonitaDS,java:comp/env/bonitaSequenceManagerDS] (Use --stacktrace to see the full trace)

私は次の起動例外を取得テストアプリを実行しているときにもコンプ/ ENV/JDBC: のGrails 2.4.2

答えて

1

を使用して実行アプリを使用してこれは、我々が のjndiName =」javaの約Datasource.groovy

dataSource { 

    jndiName = "java:comp/env/jdbc/bonitaSequenceManagerDS" 
} 
+0

何でそれを行う方法である実行時に同じ例外を取得/ bonitaDS "とし、テスト環境でもbonitaを動作させます。 resource.groovyの設定 –

関連する問題