2016-07-14 7 views
0

ドッカー環境にmoquiとmantleを配備しました。ドッカーの作成を使用して2人のドッカーのcomainter、tomcatとmariadbを設定しました。Tomcatとmariadbを使ったドッカーへのデータの読み込みが初めて失敗しました

Tomcatのドッカー容器、

run java -jar moqui-2.0.0.war -load 

catalina.sh run 

初めてデータローディングとTomcatを開始その後、最初のデータをロードするために起動するデータソースCONFが

<entity-facade crypt-pass="MoquiDefaultPassword:CHANGEME"> 
    <datasource group-name="transactional" database-conf-name="mysql" schema-name=""> 
     <inline-jdbc> 
      <xa-properties user="moqui" password="moqui" pinGlobalTxToPhysicalConnection="true" serverName="192.168.1.237" port="3400" databaseName="CJZCDefault" autoReconnectForPools="true" 
       useUnicode="true" encoding="UTF-8"/> 
     </inline-jdbc> 
    </datasource> 

    <datasource group-name="tenantcommon" database-conf-name="mysql" schema-name=""> 
     <inline-jdbc> 
      <xa-properties user="moqui" password="moqui" pinGlobalTxToPhysicalConnection="true" serverName="192.168.1.237" port="3400" databaseName="CJZCDefault" autoReconnectForPools="true" 
       useUnicode="true" encoding="UTF-8"/> 
     </inline-jdbc> 
    </datasource> 
</entity-facade> 

あります詳細ログは以下にありますが、Tomcatによってトリガーされた2番目のデータ読み込みの成功です。

WARパッケージのロードを明示的に実行しないと、Tomcatがトリガーしてデータベースにデータが初期化されないと失敗します。

ドッカーのmariadbを使用したtomcat(ドッカーにはない)の環境で完全に正常に動作します。

多分私はいくつかの環境が間違っています。もし誰かが同じ問題を抱えていれば、それを深く掘る価値があるかもしれません。

Creating network "thirdparty_default" with the default driver 
Creating thirdparty_db-qa_1 
Creating thirdparty_server-qa_1 
[[email protected] third-party]$ sudo docker logs -f thirdparty_server-qa_1 
Using temporary directory: /usr/local/tomcat/webapps/ROOT/execwartmp 
Determined runtime from existing runtime directory: runtime 
Canonicalized runtimePath: /usr/local/tomcat/webapps/ROOT/runtime 
Loading data with args [{load=}] 
15:42:39.490 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Initializing Moqui ExecutionContextFactoryImpl 
- runtime directory: /usr/local/tomcat/webapps/ROOT/runtime 
- runtime config: /usr/local/tomcat/webapps/ROOT/runtime/conf/MoquiProductionConf.xml 
15:42:39.575 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component tools    at file:/usr/local/tomcat/webapps/ROOT/runtime/base-component/tools 
15:42:39.575 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component webroot   at file:/usr/local/tomcat/webapps/ROOT/runtime/base-component/webroot 
15:42:39.585 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component mantle-udm   at file:/usr/local/tomcat/webapps/ROOT/runtime/component/mantle-udm 
15:42:39.598 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component mantle-usl   at file:/usr/local/tomcat/webapps/ROOT/runtime/component/mantle-usl 
15:42:39.598 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component moqui-zh_CN-addon at file:/usr/local/tomcat/webapps/ROOT/runtime/component/moqui-zh_CN-addon 
15:42:39.600 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added component zc-3plservices  at file:/usr/local/tomcat/webapps/ROOT/runtime/component/zc-3plservices 
15:42:39.600 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Components after depends-on sort: [tools, webroot, mantle-udm, mantle-usl, moqui-zh_CN-addon, zc-3plservices] 
15:42:39.621 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Merging MoquiConf.xml file from component zc-3plservices 
15:42:39.648 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Merging runtime configuration at /usr/local/tomcat/webapps/ROOT/runtime/conf/MoquiProductionConf.xml 
15:42:40.102 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Initializing worker ThreadPoolExecutor: queue limit 65535, pool-core 4, pool-max 16, pool-alive 60s 
15:42:40.151 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Added JARs from component zc-3plservices: [zc-3plservices-0.0.1.jar] 
15:42:40.192 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Not loading disabled ToolFactory with class: org.moqui.impl.tools.JackrabbitRunToolFactory 
15:42:40.204 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Loading ToolFactory with class: org.moqui.jcache.MCacheToolFactory 
15:42:40.217 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Loading ToolFactory with class: org.moqui.impl.tools.H2ServerToolFactory 
15:42:40.253 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Cache Facade initialized 
15:42:40.675 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Resource Facade initialized 
15:42:40.698 WARN   main      b.t.Configuration Cannot get the unique server ID for this JVM ('bitronix.tm.serverId'). Make sure it is configured and you use only US-ASCII characters. Will use IP address instead (unsafe for production usage!). 
15:42:40.889 INFO   main .moqui.i.c.ExecutionContextFactoryImpl Transaction Facade initialized 
Error loading or running Moqui.loadData with args [{load=}]: java.lang.reflect.InvocationTargetException 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:498) 
    at MoquiStart.main(MoquiStart.java:114) 
Caused by: java.util.ServiceConfigurationError: org.moqui.context.ExecutionContextFactory: Provider org.moqui.impl.context.ExecutionContextFactoryImpl could not be instantiated 
    at java.util.ServiceLoader.fail(ServiceLoader.java:232) 
    at java.util.ServiceLoader.access$100(ServiceLoader.java:185) 
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384) 
    at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404) 
    at java.util.ServiceLoader$1.next(ServiceLoader.java:480) 
    at org.moqui.Moqui.loadData(Moqui.java:79) 
    ... 5 more 
Caused by: bitronix.tm.resource.ResourceConfigurationException: cannot create JDBC datasource named DEFAULT_transactional_DS 
    at bitronix.tm.resource.jdbc.PoolingDataSource.init(PoolingDataSource.java:90) 
    at org.moqui.impl.context.TransactionInternalBitronix.getDataSource(TransactionInternalBitronix.groovy:130) 
    at org.moqui.impl.entity.EntityDatasourceFactoryImpl.init(EntityDatasourceFactoryImpl.groovy:82) 
    at org.moqui.impl.entity.EntityFacadeImpl.initAllDatasources(EntityFacadeImpl.groovy:191) 
    at org.moqui.impl.entity.EntityFacadeImpl.<init>(EntityFacadeImpl.groovy:120) 
    at org.moqui.impl.context.ExecutionContextFactoryImpl.initEntityFacade(ExecutionContextFactoryImpl.groovy:687) 
    at org.moqui.impl.context.ExecutionContextFactoryImpl.<init>(ExecutionContextFactoryImpl.groovy:196) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:423) 
    at java.lang.Class.newInstance(Class.java:442) 
    at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380) 
    ... 8 more 
Caused by: java.lang.ClassNotFoundException: Class [com.mysql.jdbc.jdbc2.optional.MysqlXADataSource] not found 
    at MoquiStart$StartClassLoader.loadClass(MoquiStart.java:496) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357) 
    at java.lang.Class.forName0(Native Method) 
    at java.lang.Class.forName(Class.java:264) 
    at bitronix.tm.utils.ClassLoaderUtils.loadClass(ClassLoaderUtils.java:80) 
    at bitronix.tm.resource.common.XAFactoryHelper.createXAFactory(XAFactoryHelper.java:42) 
    at bitronix.tm.resource.common.XAPool.<init>(XAPool.java:94) 
    at bitronix.tm.resource.jdbc.PoolingDataSource.buildXAPool(PoolingDataSource.java:99) 
    at bitronix.tm.resource.jdbc.PoolingDataSource.init(PoolingDataSource.java:86) 
    ... 20 more 
========== Shutting down Moqui Executable (closing jars, etc) ========== 
14-Jul-2016 15:42:44.446 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server version:  Apache Tomcat/8.0.36 
14-Jul-2016 15:42:44.447 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server built:   Jun 9 2016 13:55:50 UTC 
14-Jul-2016 15:42:44.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Server number:   8.0.36.0 
14-Jul-2016 15:42:44.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Name:    Linux 
14-Jul-2016 15:42:44.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log OS Version:   3.10.0-327.22.2.el7.x86_64 
14-Jul-2016 15:42:44.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Architecture:   amd64 
14-Jul-2016 15:42:44.448 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Java Home:    /usr/lib/jvm/java-8-openjdk-amd64/jre 
14-Jul-2016 15:42:44.452 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Version:   1.8.0_91-8u91-b14-1~bpo8+1-b14 
14-Jul-2016 15:42:44.452 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log JVM Vendor:   Oracle Corporation 
14-Jul-2016 15:42:44.452 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_BASE:   /usr/local/tomcat 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log CATALINA_HOME:   /usr/local/tomcat 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djdk.tls.ephemeralDHKeySize=2048 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.endorsed.dirs=/usr/local/tomcat/endorsed 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.base=/usr/local/tomcat 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Dcatalina.home=/usr/local/tomcat 
14-Jul-2016 15:42:44.453 INFO [main] org.apache.catalina.startup.VersionLoggerListener.log Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp 
14-Jul-2016 15:42:44.454 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent An older version 1.1.32 of the APR based Apache Tomcat Native library is installed, while Tomcat recommends a minimum version of 1.1.33 
14-Jul-2016 15:42:44.454 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent Loaded APR based Apache Tomcat Native library 1.1.32 using APR version 1.5.1. 
14-Jul-2016 15:42:44.454 INFO [main] org.apache.catalina.core.AprLifecycleListener.lifecycleEvent APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true]. 
14-Jul-2016 15:42:44.548 INFO [main] org.apache.catalina.core.AprLifecycleListener.initializeSSL OpenSSL successfully initialized (OpenSSL 1.0.1k 8 Jan 2015) 
14-Jul-2016 15:42:44.734 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["http-apr-8080"] 
14-Jul-2016 15:42:44.761 INFO [main] org.apache.coyote.AbstractProtocol.init Initializing ProtocolHandler ["ajp-apr-8009"] 
14-Jul-2016 15:42:44.769 INFO [main] org.apache.catalina.startup.Catalina.load Initialization processed in 1219 ms 
14-Jul-2016 15:42:44.811 INFO [main] org.apache.catalina.core.StandardService.startInternal Starting service Catalina 
14-Jul-2016 15:42:44.811 INFO [main] org.apache.catalina.core.StandardEngine.startInternal Starting Servlet Engine: Apache Tomcat/8.0.36 
14-Jul-2016 15:42:44.893 INFO [localhost-startStop-1] org.apache.catalina.startup.HostConfig.deployWAR Deploying web application archive /usr/local/tomcat/webapps/ROOT.war 
14-Jul-2016 15:42:48.139 INFO [localhost-startStop-1] org.apache.jasper.servlet.TldScanner.scanJars At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time. 
15:42:49.948 INFO -startStop-1  o.moqui.i.w.MoquiContextListener Loading Webapp 'webroot' (Moqui Root Webapp) on ROOT, located at: /usr/local/tomcat/webapps/ROOT/ 
15:42:50.314 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Initializing Moqui ExecutionContextFactoryImpl 
- runtime directory: /usr/local/tomcat/webapps/ROOT/runtime 
- runtime config: /usr/local/tomcat/webapps/ROOT/runtime/conf/MoquiDevConf.xml 
15:42:50.376 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component tools    at file:/usr/local/tomcat/webapps/ROOT/runtime/base-component/tools 
15:42:50.376 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component webroot   at file:/usr/local/tomcat/webapps/ROOT/runtime/base-component/webroot 
15:42:50.378 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component mantle-udm   at file:/usr/local/tomcat/webapps/ROOT/runtime/component/mantle-udm 
15:42:50.383 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component mantle-usl   at file:/usr/local/tomcat/webapps/ROOT/runtime/component/mantle-usl 
15:42:50.383 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component moqui-zh_CN-addon at file:/usr/local/tomcat/webapps/ROOT/runtime/component/moqui-zh_CN-addon 
15:42:50.384 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added component zc-3plservices  at file:/usr/local/tomcat/webapps/ROOT/runtime/component/zc-3plservices 
15:42:50.385 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Components after depends-on sort: [tools, webroot, mantle-udm, mantle-usl, moqui-zh_CN-addon, zc-3plservices] 
15:42:50.405 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Merging MoquiConf.xml file from component zc-3plservices 
15:42:50.430 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Merging runtime configuration at /usr/local/tomcat/webapps/ROOT/runtime/conf/MoquiDevConf.xml 
15:42:50.955 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Initializing worker ThreadPoolExecutor: queue limit 65535, pool-core 4, pool-max 16, pool-alive 60s 
15:42:50.994 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Added JARs from component zc-3plservices: [zc-3plservices-0.0.1.jar] 
15:42:51.008 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Not loading disabled ToolFactory with class: org.moqui.impl.tools.JackrabbitRunToolFactory 
15:42:51.013 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Loading ToolFactory with class: org.moqui.jcache.MCacheToolFactory 
15:42:51.021 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Loading ToolFactory with class: org.moqui.impl.tools.H2ServerToolFactory 
15:42:51.036 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Cache Facade initialized 
15:42:51.443 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Resource Facade initialized 
15:42:51.535 WARN -startStop-1      b.t.Configuration Cannot get the unique server ID for this JVM ('bitronix.tm.serverId'). Make sure it is configured and you use only US-ASCII characters. Will use IP address instead (unsafe for production usage!). 
15:42:51.853 WARN -startStop-1      b.t.j.DiskJournal active log file is unclean, did you call BitronixTransactionManager.shutdown() at the end of the last run? 
15:42:51.884 INFO -startStop-1 .moqui.i.c.ExecutionContextFactoryImpl Transaction Facade initialized 
15:42:52.929 INFO -startStop-1   o.moqui.i.e.EntityFacadeImpl Loaded 12 Entity ECA rules from 3 .eecas.xml files 
15:42:52.944 INFO -startStop-1     o.m.i.e.EntityCache Entity Cache initialized, distributed cache invalidate enabled: false 

答えて

0

私はMoquiをApache Tomcatサーバーにデプロイし、PostgreSQLに接続しています。アプリケーションサーバーとデータベースサーバーは別々のコンテナーにあります。状況は少し異なりますが、いくつかのノートを投稿するのに十分な類推です。私はあなたのエラーのスタックトレースに気づい

DBドライバ

まず最初は、(おそらく)データベースへの接続に問題があること、です。

クラス[com.mysql.jdbc.jdbc2.optional.MysqlXADataSourceの]

を見つけていないデータベースに接続するためのあなたのドライバを確認してください。私が書いたように、私はPostgreSQLを使用しています。最初にインストールするのはPostgreSQL JDBCドライバです。何が私の作品

cp /var/tmp/postgresql-9.2-1002.jdbc4.jar /opt/vi/moqui/runtime/lib 

リンクコンテナ

:それから私は、アプリケーションが実行時にそれを使用することができるように、私の場合には、以下のように、moqui /ランタイム/ libディレクトリにドライバのJARファイルをコピーDockerのリンク機能を使用しています。データベースサーバーのコンテナには、単にという名前のpgという名前が付けられています。それはあなたが、出力の最後の列に後者のコマンドを実行した後に表示される名前です。

docker ps -a 

アプリケーションサーバーのコンテナを実行している、私の場合には、これら二つの容器の間にリンクを確立するためのリンクパラメータを使用します。

docker run -it --name srv05 --link pg:pg -p 443:8443 -p 80:8080 tomcat:8.5 

--linkパラメータは、(ドッキングウィンドウのホストから入手可能)PGコンテナが新たに作成された容器の中に同じ名前(PG)の下で利用可能になることを言います。

MoquiConfファイルでは、IPアドレス(192.168.1.237)をpgに置き換えます(名前を変更することはもちろん可能です)。単純なpingコマンドで、(新しく作成された)アプリケーションサーバーの内部から(論理名を使用して)データベースサーバー(のコンテナ)に接続できることを確認できます。コンテナをリンク詳細は

ping pg 

、次の点を確認してくださいhttps://docs.docker.com/engine/userguide/networking/default_network/dockerlinks/

はそれがお役に立てば幸いです。

+0

クラス[com.mysql.jdbc.jdbc2.optional.MysqlXADataSource]が見つかりませんでしたので、oracle jdkをtomcat jreとして追加して解決しました。問題の接続が拒否された場合、ドッカーはmariadbコンテナの後でTomcatコンテナを開始するが、Tomcat Catalinaが実行されると、mariadb mysqlサービスはまだ準備されていないため接続が拒否されるため、 mariadbサービス3306ポートの準備が整った後、Tomcatのコンテナ待機とCatalinaの実行を強制するには、https://github.com/aanand/docker-wait/blob/master/waitを追加し、tomcatコンテナのコマンドは/ bin/bash -cです"/ wait && catalina.sh run" –

+0

おそらくクラス[com.mysql.jdbc.jdbc2.optional.MysqlXADataSource]が見つからない問題は、接続がmariadbへの接続に失敗したことが拒否されたために発生します。 tomcatのjdkは必要ないかもしれません。 –

+0

moquiランタイムhttps://github.com/shendepu/docker-moqui-mantleの完全なDockerfileはこちらです。 –

関連する問題