web-dev-qa-db-ja.com

DataSourceを使用したWildflyの構成

これは、Wildflyサーバーでデータソースをセットアップしようとする最初の例です。 Googleで見つけたいくつかのチュートリアルを試してみましたが、それでも機能しません。

Webサービスに取り組んでいますが、.warファイルをデプロイするとエラーが発生し続けます。

アプリがデプロイされたときの最新のログは次のとおりです。

22:16:33,049 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-2) JBAS015877: Stopped deployment IslamicPostsWS.war (runtime-name: IslamicPostsWS.war) in 7ms
22:16:33,184 INFO  [org.jboss.as.server] (XNIO-1 task-2) JBAS018558: Undeployed "IslamicPostsWS.war" (runtime-name: "IslamicPostsWS.war")
22:16:33,186 INFO  [org.jboss.as.controller] (XNIO-1 task-2) JBAS014774: Service status report
JBAS014777:   Services which failed to start:      service jboss.deployment.unit."IslamicPostsWS.war".POST_MODULE

22:16:35,518 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-6) JBAS015877: Stopped deployment IslamicPostsWS (runtime-name: IslamicPostsWS) in 7ms
22:16:35,660 INFO  [org.jboss.as.server] (XNIO-1 task-6) JBAS018558: Undeployed "IslamicPostsWS" (runtime-name: "IslamicPostsWS")
22:16:38,358 INFO  [org.jboss.as.server.deployment.scanner] (DeploymentScanner-threads - 2) JBAS015018: Deployment IslamicPostsWS was previously deployed by this scanner but has been removed from the server deployment list by another management tool. Marker file C:\Users\Ilhami\workspace-services\.metadata\.plugins\org.jboss.ide.Eclipse.as.core\WildFly_8.0_Runtime_Server1396040937545\deploy\IslamicPostsWS.undeployed is being added to record this fact.
22:17:00,406 INFO  [org.jboss.as.server.deployment] (MSC service thread 1-7) JBAS015876: Starting deployment of "IslamicPostsWS.war" (runtime-name: "IslamicPostsWS.war")
22:17:00,540 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("deploy") failed - address: ([("deployment" => "IslamicPostsWS.war")]) - failure description: {
    "JBAS014771: Services with missing/unavailable dependencies" => ["jboss.naming.context.Java.module.IslamicPostsWS.IslamicPostsWS.DefaultDataSource is missing [jboss.naming.context.Java.jboss.datasources.ExampleDS]"],
    "JBAS014879: One or more services were unable to start due to one or more indirect dependencies not being available." => {
        "Services that were unable to start:" => [
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"com.Sun.faces.config.ConfigureListener\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.faces.webapp.FacetTag\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"javax.servlet.jsp.jstl.tlv.ScriptFreeTLV\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".component.\"org.jboss.resteasy.plugins.server.servlet.ResteasyBootstrap\".START",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".deploymentCompleteService",
            "jboss.deployment.unit.\"IslamicPostsWS.war\".jndiDependencyService",
            "jboss.naming.context.Java.module.IslamicPostsWS.IslamicPostsWS.env.jdbc.TestDB",
            "jboss.undertow.deployment.default-server.default-Host./IslamicPostsWS",
            "jboss.undertow.deployment.default-server.default-Host./IslamicPostsWS.UndertowDeploymentInfoService"
        ],
        "Services that may be the cause:" => [
            "jboss.jdbc-driver.com_mysql_jdbc_Driver",
            "jboss.naming.context.Java.jboss.datasources.ExampleDS"
        ]
    }
}
22:17:00,683 INFO  [org.jboss.as.server] (DeploymentScanner-threads - 2) JBAS018559: Deployed "IslamicPostsWS.war" (runtime-name : "IslamicPostsWS.war")
22:17:00,683 INFO  [org.jboss.as.controller] (DeploymentScanner-threads - 2) JBAS014774: Service status report
JBAS014775:    New missing/unsatisfied dependencies:
      service jboss.naming.context.Java.jboss.datasources.ExampleDS (missing) dependents: [service jboss.naming.context.Java.module.IslamicPostsWS.IslamicPostsWS.DefaultDataSource]

persistence.xml

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://Java.Sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://Java.Sun.com/xml/ns/persistence http://Java.Sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="JPADB">
        <jta-data-source>Java:jboss/datasources/DBTest</jta-data-source>
        <properties>
            <property name="showSql" value="true"/>
            <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
        </properties>
    </persistence-unit>
</persistence>

さらにファイルが必要かどうかを教えてください。

8
Ilhami

データソース定義を投稿できますか?

データソースのデプロイメントを「スタンドアロン」でテストするのが最善だと思います。つまり、データソースが機能するかどうかをテストするためだけに、実際のアプリケーションの展開とは切り離されています。あなたはこれをテストすることができます。 Webコンソール(localhost:9990/console)を使用します。

また、設定済みの例DSに問題があるようです。このDSを削除しましたか?standalone.xmlには、壊れている可能性のあるExampleDSのリファレンスもあります。

6
shillner

Wildflyコンソール(localhost:9990など)に移動し、「構成」->「コンテナー」->「EE」->「デフォルトのバインディング」セクションを編集します。デフォルトのデータソースを有効なデータソースのJNDI名に設定します。

サーバーは1つのアプリのみを実行するために存在するので、そこにあったデフォルトのアプリを削除し、メインのデータソースを指すようにしました。

18
user3402489

おそらく、standalone.xml xmlnsの "urn:jboss:domain:datasources:2.0"セクションにds宣言 "Java:jboss/datasources/ExampleDS"がないため、正しく機能します(デフォルトの構成の例を示します)。

            <datasource jndi-name="Java:jboss/datasources/ExampleDS" pool-name="ExampleDS" enabled="true" use-Java-context="true">
                <connection-url>jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE</connection-url>
                <driver>h2</driver>
                <security>
                    <user-name>sa</user-name>
                    <password>sa</password>
                </security>
            </datasource>
            <drivers>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
            </drivers>

または、他の応答で言及されているように、UIを介して追加することもできます。

11
Nabil M

MySQL DBを使用しているとすると、次のようにしてDSを作成できます。

(1)ここからmysqlドライバーをダウンロードします: http://dev.mysql.com/downloads/connector/j/

(2)mysqlドライバーを次の場所にコピーします:WILDFLY_HOME/modules/system/layers/base/com/mysql/main

(3)JBoss(またはWildfly)コンソールから、次のコマンドを実行します。

/subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql, driver-module-name=com.mysql, driver-class-name=com.mysql.jdbc.Driver)

(4)次に、JBoss(またはWildfly)コンソールから、次のコマンドを実行します。

/subsystem=datasources/data-source=YourDS:add(driver-name=mysql, user-name=USERNAME, password=PASSWORD, connection-url=jdbc:mysql://localhost:3306/YOURDATABASE, min-pool-size=5, max-pool-size=15, jndi-name=Java:jboss/datasources/YourDS, enabled=true, validate-on-match=true, valid-connection-checker-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLValidConnectionChecker, exception-sorter-class-name=org.jboss.jca.adapters.jdbc.extensions.mysql.MySQLExceptionSorter)

出来上がり。これで、JNDIパスがJava:jboss/datasources/YourDSのデータソースが作成されました。

2
Alex Petty

Default-bindings設定が正しいデータソースを参照しているかどうかを確認します: https://docs.jboss.org/author/display/WFLY8/Default+EE+Bindings+Configuration

2
Marek Gregor

持っていた

service jboss.naming.context.Java.jboss.datasourservice jboss.naming.context.Java.jboss.datasources.ExampleDS(missing)依存関係:...

wildfly-8.1.0.Finalで.

私見では

standalone/configuration/standalone-full.xml持っていた

<default-bindings ... datasource="Java:jboss/datasources/ExampleDS" ...

そして

<datasource jndi-name="Java:/datasources/ExampleDS"...

jndi-nameの不一致!

Jndi-name = "Java:jboss/datasources/ExampleDS"でExampleDS2を作成しました。これは私の問題を解決しました。

1
Sam Sol