2015-10-02 28 views

答えて

7

この方法では、マイクとアダム・ビアンの回答をタイノスで組み合わせます。それは新しいdomain.xmlを作成することを含み、これはPayara設定ファイルです。完全なPayaraで動作する場合、アプリケーションの変更は必要ありません。以下の例は、PostgreSQL JDBCの例です。

  1. payara-micro.jarをアーカイブマネージャで開き、ファイル/microdomain.xmlを抽出します。
  2. microdomain.xmlをテキストエディタで開きます。
  3. アプリケーションが既に完全なPayaraにデプロイされている場合、完全なPayaraのdomain.xmlから以下の変更をコピーして貼り付けることができます。

    <resource-ref ref="jdbc/poolname"></resource-ref> 
    
  4. 割引:右の行は</server>を含む上記追加

    <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. :ポートとプール名:

  6. はあなたのdbnameは、DBUSER、dbpasswordを、ホスト名を使用して、右</resources>を含む行の上に追加します。テキストエディタを閉じます。

  7. パスとファイル名を使用して、コマンドラインからPayara microを起動します。 Linuxの構文:オプションの

    java -cp "/opt/jdbc/postgresql.jar:/opt/payara/micro.jar" fish.payara.micro.PayaraMicro --deploy webapp.war --domainConfig microdomain.xml 
    
+0

これは、データベース名が常に同じままであるが、デプロイメント全体で常にそうであるとは限りません。 –

2

通常のdomain.xmlにJDBCを設定し、それをPayaraに提供することができます。あなたが不明な場合は、常に既存のdomain.xmlを使用して、それからJDBC設定を使用することができます。あなたがプログラムでペーシュ・カショーロマイクロをブートストラップしている場合は、使用する

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

:あなたは、代替domain.xmlファイルを指定することができます一つは

Payara Micro has a few command line options

setAlternateDomainXML(File alternateDomainXML) 
+0

私は、マイクロインスタンスを実行する前にクラスパスにJDBCドライバを追加する必要があると思いますか? Ilはいくつかのテストを行いますが、私は--rootDirを使ってみましたが、ちょうど例外を引き起こしました。 Thanks @Mike – tainos

0

アダムビエンは、この質問に答え彼の19th Airhacks video

私のテイク組み込みサーバーとして最適なのは、カスタムリソースと一緒に使用すると、JDBCリソースとmavenの依存関係を設定する際に、jarファイルまたはwarファイル内に必要なドライバが含まれています。

5

web.xmlにデータソース定義を追加し、JDBC jarのjarファイルをWEB-INF/libに追加します。次に、Payall Microにいつものようにwarファイルを配備します。

<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> 

Payaraの例GitHubリポジトリでこれを行う方法の完全な例があります。 Datasource example on Payara GitHub

0

一つはGlassFishの資源です。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

0

the accepted answerが私のために考え出し異なると少し簡単な方法を動作しなかったので。あなたはまだカスタム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 

この呼び出しは、メインクラスを知っているあなたを必要としません。

関連する問題