【发布时间】: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