web-dev-qa-db-ja.com

Payara MicroでJDBCドライバーを追加し、JDBCリソースを構成するにはどうすればよいですか?

Java EE Payara Microを使用するときにJDBCドライバーとリソースをセットアップするためのオプションは何ですか?

15
tainos

この方法は、マイクとアダム・ビエンからの回答をタイノ族を介して組み合わせます。これには、Payara構成ファイルである新しいdomain.xmlの作成が含まれます。完全なPayaraで動作する場合は、アプリケーションを変更する必要はありません。以下の例はPostgreSQLJDBC用です。

  1. アーカイブマネージャでpayara-micro.jarを開き、ファイル/microdomain.xmlを抽出します。
  2. テキストエディタでmicrodomain.xmlを開きます。
  3. アプリケーションがすでに完全なPayaraにデプロイされている場合は、完全なPayaraのdomain.xmlから以下の変更をコピーして貼り付けることができます。
  4. </resources>を含む行のすぐ上に、dbname、dbuser、dbpassword、hostname:port、およびpoolnameを使用して追加します。

    <jdbc-connection-pool connection-validation-method="auto-commit" driver-classname="org.postgresql.Driver" res-type="Java.sql.Driver" name="poolname" is-connection-validation-required="true" connection-creation-retry-attempts="3" validate-atmost-once-period-in-seconds="60">
        <property name="URL" value="jdbc:postgresql://localhost:5432/dbname"></property>
        <property name="user" value="dbuser"></property>
        <property name="password" value="dbpassword"></property>
    </jdbc-connection-pool>
    <jdbc-resource pool-name="poolname" jndi-name="jdbc/poolname"></jdbc-resource>
    
  5. </server>を含む行のすぐ上に追加します。

    <resource-ref ref="jdbc/poolname"></resource-ref>
    
  6. テキストエディタを保存して閉じます。
  7. パスとファイル名を使用して、コマンドラインからPayaramicroを起動します。 Linux構文:

    Java -cp "/opt/jdbc/postgresql.jar:/opt/payara/micro.jar" fish.payara.micro.PayaraMicro --deploy webapp.war --domainConfig microdomain.xml
    
11
Anton Stolbunov

データソース定義をweb.xmlに追加してから、JDBCjarのjarファイルをWEB-INF/libに追加します。次に、通常どおりwarファイルをPayaraMicroにデプロイします。

<data-source>
  <name>Java:global/ExampleDataSource</name>
  <class-name>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</class-name>
  <server-name>localhost</server-name>
  <port-number>3306</port-number>
  <database-name>mysql</database-name>
  <user>root</user>
  <password>root</password>
  <!-- Example of how to use a Payara specific custom connection pool    setting -->
  <property>
     <name>fish.payara.sql-trace-listeners</name>
     <value>com.Sun.gjc.util.SQLTraceLogger</value>
  </property>
</data-source>

これを行う方法の完全な例がPayaraExamplesGitHubリポジトリにあります。 Payara GitHubのデータソースの例 を参照してください

7
S Millidge

通常のdomain.xmlでJDBCを構成し、それをPayaraに提供できます。よくわからない場合は、いつでも既存のdomain.xmlを取得して、そこからJDBC構成を使用できます。

Payara Microにはいくつかのコマンドラインオプションがあります 、そのうちの1つを使用すると、代替のdomain.xmlファイルを指定できます。

Java -jar payara-micro.jar --deploy myApp.war --domainConfig mydomain.xml

プログラムでPayaraMicroをブートストラップする場合は、次を使用します。

setAlternateDomainXML(File alternateDomainXML)
3
Mike

受け入れられた答え は私にとってはうまくいきませんでしたので、別の少し簡単な方法を考え出しました。引き続きカスタムdomain.xmlに依存していますが、起動コマンドを簡略化できます。

Java -jar /opt/payara/payara-micro.jar --deploy webapp.war --domainConfig domain.xml --addJars /opt/mysql-connector-Java-5.1.40-bin.jar

この呼び出しでは、Mainクラスを知っている必要はありません。

2
thomas.mc.work

Adam Bienは彼の 19番目のAirhacksビデオ でこの質問に答えました。

私の考えでは、カスタムリソースで使用する場合は、組み込みサーバーとして使用するのが最適です。メインでは、JDBCリソースを構成し、Mavenの依存関係を使用して、jarファイルまたはwarファイル内に必要なドライバーを含めます。

2
tainos

オプションの1つはglassfish-resources.xmlです

<!-- db1 -->
<jdbc-connection-pool
        datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="db1"
        res-type="javax.sql.DataSource"
        steady-pool-size="1"
        is-connection-validation-required="true"
        connection-validation-method="meta-data"
        max-pool-size="10">
    <property name="password" value="icoder_pwd"/>
    <property name="user" value="icoder_user"/>
    <property name="databaseName" value="icoder_db"/>
    <property name="serverName" value="localhost"/>
    <property name="portNumber" value="3310"/>
    <property name="zeroDateTimeBehavior" value="convertToNull"/>
</jdbc-connection-pool>
<jdbc-resource pool-name="db1" jndi-name="jdbc/db1"/>


<!-- db2 -->
<jdbc-connection-pool
        datasource-classname="com.mysql.jdbc.jdbc2.optional.MysqlDataSource" name="db2"
        res-type="javax.sql.DataSource"
        steady-pool-size="1"
        is-connection-validation-required="true"
        connection-validation-method="meta-data"
        max-pool-size="10">
    <property name="password" value="icoder_pwd"/>
    <property name="user" value="icoder_user"/>
    <property name="databaseName" value="icoder_db"/>
    <property name="serverName" value="localhost"/>
    <property name="portNumber" value="3311"/>
    <property name="zeroDateTimeBehavior" value="convertToNull"/>
</jdbc-connection-pool>
<jdbc-resource pool-name="db2" jndi-name="jdbc/db2"/>


</resources>

エンティティマネージャーの実装に関する完全な例は次のとおりです。 https://github.com/igorzg/payara-micro-jpa-multi-tenancy

1
igorzg