【问题标题】:Adding mySql to eclipse project with maven tomcat plugin使用maven tomcat插件将mySql添加到eclipse项目中
【发布时间】:2012-10-20 20:36:49
【问题描述】:

我从网上下载了一个 spring mvc 项目并且可以正常工作。我正在使用 maven 和 maven tomcat 插件来管理依赖项并在内置的 tomcat 中运行 webapp。我正在尝试在我的项目中添加 mySql 支持。由于我是 maven 和 maven tomcat 插件的新手,所以我不知道这样做很热。在我尝试添加 mysql 之前,一切正常,我能够启动我的网络应用程序,只需执行一个 tomcat:run maven 目标。

现在,当我执行 tomcat:run 我得到一个

com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

以下是我在网上阅读后所做的: 我在 pom.xml 中添加了 mysql 驱动程序的依赖项(以及 Hibernate 注释,因为我想使用它),并指定了 tomcat 插件的依赖项:

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>

<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
        <mode>context</mode>
    </configuration>
<dependencies>      
    <dependency>
        <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.9</version>
    </dependency>
</dependencies>
</plugin>                       

您还可以注意到指定使用 context.xml 文件的标记。但我不知道把这个文件放在哪里。我读到它应该在 tomcat/conf 中自动生成,但它不存在。所以我手动添加了这个内容:

<?xml version="1.0" encoding="UTF-8"?>
<Context>
     <Resource name="jdbc/mkyongdb" auth="Container" type="javax.sql.DataSource"
           maxActive="50" maxIdle="30" maxWait="10000"
           username="root" password="password" 
           driverClassName="com.mysql.jdbc.Driver"
           url="jdbc:mysql://localhost:3306/mkyongdb"/>

</Context>

然后在 web.xml,位于 tomcat/conf 我添加:

<resource-ref>
<description>MySQL Datasource example</description>
<res-ref-name>jdbc/mkyongdb</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

我在 src/main/webapp/META-INF/context.xml 和 src/main/webapp/WEB-INF/web.xml 中放置了相同的内容

通过所有这些配置,上述错误不会出现。但是如果我尝试使用休眠添加

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mkyongdb" />
<property name="username" value="root" />
<property name="password" value="password" />
</bean>
<bean
    id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" >
    <property name="dataSource" >
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties" >
        <props>
            <prop key="hibernate.hbm2ddl.auto" >create-drop</prop>
            <prop key="hibernate.dialect" >org.hibernate.dialect.MySQLDialect</prop>
            <prop key="hibernate.show_sql" >true</prop>
        </props>
    </property>
    <property name="annotatedClasses" >
        <list>
            <value>org.mose.grouporganizer.entity.AccelerometerFeatures</value>
        </list>
    </property>
</bean>

然后我得到通信链接故障。我错过了什么? 如果需要,我可以添加完整的堆栈跟踪。

【问题讨论】:

  • 你解决这个问题了吗?如何

标签: mysql spring maven maven-tomcat-plugin maven-eclipse-plugin


【解决方案1】:

如果您的应用程序运行良好并且您想使用 MySQL 作为数据库,那么您应该在 pom.xml 中添加 MySQL 驱动程序并更改 Hibernate 配置。就是这样。

【讨论】:

  • 正如我所写的,我已经做到了,但是没有成功!我不需要配置tomcat插件吗?请多解释一下..
  • 您写道,您的应用程序在 Tomcat 上运行?使用什么数据库?
  • 嗯...在这种情况下,请检查您的 MySQL 是否正常工作,您可以使用控制台连接到它。另请参阅异常的完整堆栈跟踪。
【解决方案2】:

第一次升级到现在在 Apache 上的最后一个 tomcat maven 插件。

http://tomcat.apache.org/maven-plugin-2.0/

关于上下文使用

  <plugin>
    <groupId>org.apache.tomcat.maven</groupId>
    <artifactId>tomcat7-maven-plugin</artifactId>
    <configuration>
      <contextFile>path to your context file</contextFile>
    </configuration>
  </plugin>

【讨论】:

  • with tomcat7:run 我得到:Failed to collect dependencies for org.apache.tomcat.maven:tomcat7-maven-plugin:jar:2.0 (): Failed to read artifact descriptor for org.apache.maven.doxia:doxia-sink-api:jar:1.0: Could not transfer artifact org.apache.maven:maven-parent:pom:10 from/to central (http://repo.maven.apache.org/maven2): No response received after 60000 -&gt; [Help 1]
  • 昨天 maven Central 看起来有些问题。所以用 -U 再试一次
猜你喜欢
  • 2012-11-28
  • 2012-01-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2016-10-01
  • 2013-12-02
  • 1970-01-01
相关资源
最近更新 更多