9

this is the first time I am trying to setup datasource in my Wildfly server. I tried to follow some tutorials which I found on Google but it still doesn't work.

I am working on a web service but I keep getting some errors when I deploy my .war file.

Here is the latest log when app is deployed:

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>

Just tell me if you need more files.

Ilhami
  • 131
  • 1
  • 2
  • 11

6 Answers6

22

Go into your wildfly console (something like localhost:9990) and edit the Configuration->Container->EE->Default Bindings section. Set the default datasource to the JNDI name of some valid datasource.

I removed the default one that was there and just pointed it to my main datasource since the server exists to run one app only.

user3402489
  • 371
  • 2
  • 7
13

You probably have the ds declaration "java:jboss/datasources/ExampleDS" missing in your standalone.xml xmlns "urn:jboss:domain:datasources:2.0" section, just and it will work (here's the example from the default configuration):

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

Or you can also add through the UI as mentioned by other response.

Nabil M
  • 153
  • 1
  • 5
9

can you post your datasource definition?

I think it would be the best to test the datasource deployment 'standalone'. I mean separated from an actual application deployment, just to test whether your datasource works or not. You can test this f.i. using the web console (localhost:9990/console).

It also looks like there are problems with the pre-configured example DS of wildfly. Did you remove this DS? In standalone.xml there is also a reference on ExampleDS which might be broken.

shillner
  • 1,806
  • 15
  • 24
  • 1
    Reinstalled Wildfly and ran into problems again but fixed them. I had to create a module.xml and put the driver .jar in the same folder. That took some time but it works now. – Ilhami Apr 02 '14 at 04:28
  • There are three ways using which you can simply create datasource into wildfly 1. Using admin console 2. Manually adding into standalone.xml 3. Creating datasource file that is xml file Refere this link for detail information: http://pvrworld-wildfly.blogspot.in/ – PVR Nov 16 '16 at 18:26
  • 1
    **It also looks like there are problems with the pre-configured example DS of wildfly. Did you remove this DS? In standalone.xml there is also a reference on ExampleDS which might be broken.** those lines saved me from wasting another day. I removed ExampldDS from standalone.xml file but wasn't working. Then revised the file and found another later which was like java:/datasource/myDS and java:/myDS, kept them similar, now it is ok. – user404 Sep 29 '19 at 06:16
  • @PVR that link is outdated. It should be http://pvrworld-wildfly.blogspot.com/2016/11/getting-started-guide-wildfly.html – Queeg Feb 03 '23 at 06:25
2

Assuming you are using a MySQL DB, you can create a DS in the following way:

(1) Download the mysql driver from here: http://dev.mysql.com/downloads/connector/j/

(2) Copy the mysql driver to: WILDFLY_HOME/modules/system/layers/base/com/mysql/main

(3) From the JBoss (or Wildfly) console, run the command:

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

(4) Then, again from the JBoss (or Wildfly) console, run command:

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

Voila. Now you have a Datasource with a JNDI path of: java:jboss/datasources/YourDS

Alex Petty
  • 423
  • 3
  • 6
2

Check if default-bindings configuration references to correct datasource: https://docs.jboss.org/author/display/WFLY8/Default+EE+Bindings+Configuration

Marek Gregor
  • 3,691
  • 2
  • 26
  • 28
2

I had

service jboss.naming.context.java.jboss.datasourservice jboss.naming.context.java.jboss.datasources.ExampleDS (missing) dependents:...

on wildfly-8.1.0.Final.

IMHO

in standalone/configuration/standalone-full.xml it had

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

and

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

jndi-name mismatch!

I created ExampleDS2 with jndi-name="java:jboss/datasources/ExampleDS". This solved my problem.

Sam Sol
  • 41
  • 2