由于mysql无法让部署工作

时间:2017-12-30 22:45:22

标签: java spring spring-mvc

我正在使用Spring MVC登录示例(Eclipse / Spring Tools可用于创建新的Spring MVC项目)以了解有关Spring的更多信息。默认情况下,该示例使用H2内存数据库。虽然,我试图从H2切换到MySQL。什么时候,我说尝试我的意思是我在过去的7-8个小时里一直这样做。

登录示例使用Maven。所以,我已经将以下代码添加到pom.xml以获取mysql:

SOMECODEABOVETHIS
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.38</version>
    </dependency>
</dependencies>

然后,我继续修改了* -ds.xml文件:

<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">
    <datasource jndi-name="java:jboss/datasources/MyProjectDSBasic"
                pool-name="MyProjectDemo" enabled="true"
                use-java-context="true">

        <connection-url>jdbc:mysql://localhost:3306/MYDB</connection-url>  
        <driver>mysql</driver>
        <security>  
            <user-name>root</user-name>  
            <password></password>  
        </security>  
    </datasource>
    <drivers>
        <driver name="mysql" module="com.mysql">
            <driver-class>com.mysql.jdbc.Driver</driver-class>
            <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
        </driver>
    </drivers>
</datasources>

请注意,“drivers”块是我从另一个有关syntaxoverflow的问题中选择的答案。此外,我已经尝试过没有“驱动程序级”块。

这是修改后的persistence.xml文件:

<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="primarybasic">
        <jta-data-source>java:jboss/datasources/MyProjectDSBasic</jta-data-source>
        <properties>
            <property name="jboss.entity.manager.factory.jndi.name" 
                      value="java:jboss/MyProject/persistencebasic" />
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
            <property name="hibernate.show_sql" value="false" />
        </properties>
    </persistence-unit>
</persistence>

我使用了Wildfly 9和Tomcat 8.他们在部署时都给了我同样的错误:

  

WFLYCTL0013:操作(“完全替换 - 部署”)失败 - 地址:([]) - 失败描述:{“WFLYCTL0180:具有丢失/不可用依赖性的服务”=&gt; [“jboss.data-source.java:jboss/datasources/MyProjectDSBasic缺失[jboss.jdbc-driver.mysql]”]}

请注意,我已经清理了我的maven,并确保mysql连接器位于Maven引用的库中。我不知道如何解决这个问题。我必须阅读超过200页试图找到一个没有运气的解决方案。我甚至已经阅读了一些module.xml,你在其中提供了有关mysql连接器的更多信息,但我没有在项目上有该文件。如果我要创建它,我不知道我会把它放在哪里。

顺便说一下,我没有使用Spring Boot。

1 个答案:

答案 0 :(得分:0)

你是否在Wildfly模块下创建了com.mysql?如果不是,你必须这样做。 Wildfly需要一个用于数据库驱动程序的模块。

以下是我对Wildfly模块的回答:

What's the difference between a module and a subsystem

这里https://docs.jboss.org/author/display/WFLY10/Class+Loading+in+WildFly?_sscc=t

如何在Jboss7或Wildfly中创建模块