2014-10-28 75 views
1

許多人,我很清楚這個例外,我已經修復了很多次。但是這一次,我花了2周的時間去搜索和嘗試,需要高層人士的幫助而沒有成功。我使用Maven2/Hibernate/Spring(DI & AoP)和Spring MVC創建了一個面向服務的架構實體/ dao/service/controller的java網站。數據庫是MySql。沒有合適的驅動程序在生產中發現,而不是在蝕

開發環境:
- 視窗
- Mysql的5.6.1
- Tomcat的7

生產環境:
- Debian的
- Mysql的5.6.1
- Tomcat的7

當我從eclipse的tomcat7中部署我的應用程序=>沒有rpoblem一切都很好
當我在生產debian環境中部署我的應用程序時=>找不到適用於
的驅動程序jdbc:mysql://127.0.0.1:3306/synapse

很明顯,數據庫在生產中與使用相同的用戶環境(現在,它會改變,當它將工作)與完整的格蘭特選項。我可以連接到數據庫並使用這些標識符與它進行交互。

這裏是我的datasource.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

<bean 
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="location"> 
     <value>classpath:properties/database.properties</value> 
    </property> 
</bean> 

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName" value="${jdbc.driverClassName}" /> 
    <property name="url" value="${jdbc.url}" /> 
    <property name="username" value="${jdbc.username}" /> 
    <property name="password" value="${jdbc.password}" /> 
</bean> 

</beans> 

,在這裏,我database.properties

jdbc.driverClassName=com.mysql.jdbc.Driver 
jdbc.url=jdbc:mysql://127.0.0.1:3306/synapse 
jdbc.username=user 
jdbc.password=password 

pom.xml中

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>fr.synapsegaming</groupId> 
    <artifactId>synapse</artifactId> 
    <version>1.0.0</version> 
    <packaging>war</packaging> 
    <name>synapse</name> 
    <description>Synapse gaming website and application</description> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-war-plugin</artifactId> 
       <version>2.3</version> 
       <configuration> 
        <warSourceDirectory>src/main/webapp</warSourceDirectory> 
        <failOnMissingWebXml>false</failOnMissingWebXml> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <dependencies> 

     <!-- JUnit testing framework --> 
     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>4.8</version> 
      <scope>test</scope> 
     </dependency> 

     <!-- MySQL database driver --> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.30</version> 
     </dependency> 

     <!-- Spring framework --> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-core</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-test</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-webmvc</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-context-support</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-beans</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-expression</artifactId> 
      <version>3.2.2.RELEASE</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-hibernate</artifactId> 
      <version>1.2.9</version> 
     </dependency> 


     <!-- Hibernate Framework --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-core</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 

     <!-- Hibernate annotation --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-annotations</artifactId> 
      <version>3.3.1.GA</version> 
     </dependency> 

     <!-- Hibernate library dependecy start --> 
     <dependency> 
      <groupId>dom4j</groupId> 
      <artifactId>dom4j</artifactId> 
      <version>1.6.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-logging</groupId> 
      <artifactId>commons-logging</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-collections</groupId> 
      <artifactId>commons-collections</artifactId> 
      <version>3.2.1</version> 
     </dependency> 

     <dependency> 
      <groupId>antlr</groupId> 
      <artifactId>antlr</artifactId> 
      <version>2.7.7</version> 
     </dependency> 
     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.12</version> 
     </dependency> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-log4j12</artifactId> 
      <version>1.5.2</version> 
     </dependency> 
     <dependency> 
      <groupId>javassist</groupId> 
      <artifactId>javassist</artifactId> 
      <version>3.12.1.GA</version> 
     </dependency> 
     <!-- Hibernate library dependecy end --> 
     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.8</version> 
     </dependency> 
     <!-- Hibernate data validation --> 
     <dependency> 
      <groupId>org.hibernate</groupId> 
      <artifactId>hibernate-validator</artifactId> 
      <version>5.0.1.Final</version> 
     </dependency> 
     <!-- HSQLDB --> 
     <dependency> 
      <groupId>org.hsqldb</groupId> 
      <artifactId>hsqldb</artifactId> 
      <version>2.0.0</version> 
     </dependency> 
     <!-- Servlet --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>servlet-api</artifactId> 
      <version>2.5</version> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 
     <dependency> 
      <groupId>taglibs</groupId> 
      <artifactId>standard</artifactId> 
      <version>1.1.2</version> 
     </dependency> 
     <!-- Apache Commons FileUpload --> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.3.1</version> 
     </dependency> 
     <!-- Apache Commons IO --> 
     <dependency> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>2.4</version> 
     </dependency> 
     <!-- Java validation API --> 
     <dependency> 
      <groupId>javax.validation</groupId> 
      <artifactId>validation-api</artifactId> 
      <version>1.1.0.Final</version> 
     </dependency> 
     <!-- Java Mail API --> 
     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4</version> 
     </dependency> 
    </dependencies> 
</project> 

堆棧

java.sql.SQLException: No suitable driver found for jdbc:mysql://127.0.0.1:3306/synapse 
    java.sql.DriverManager.getConnection(DriverManager.java:596) 
    java.sql.DriverManager.getConnection(DriverManager.java:187) 
    org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:291) 
    org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:277) 
    org.springframework.jdbc.datasource.DriverManagerDataSource.getConnectionFromDriverManager(DriverManagerDataSource.java:259) 
    org.springframework.jdbc.datasource.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:241) 
    org.springframework.orm.hibernate3.LocalDataSourceConnectionProvider.getConnection(LocalDataSourceConnectionProvider.java:81) 
    org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423) 
    org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) 
    org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) 
    org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) 
    org.hibernate.loader.Loader.doQuery(Loader.java:673) 
    org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 
    org.hibernate.loader.Loader.doList(Loader.java:2213) 
    org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104) 
    org.hibernate.loader.Loader.list(Loader.java:2099) 
    org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378) 
    org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338) 
    org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172) 
    org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121) 
    org.hibernate.impl.QueryImpl.list(QueryImpl.java:79) 
    org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811) 
    fr.synapsegaming.dao.impl.PatchDaoImpl.getLastPatch(PatchDaoImpl.java:19) 
    fr.synapsegaming.service.impl.PatchServiceImpl.getLastPatch(PatchServiceImpl.java:20) 
    fr.synapsegaming.controller.impl.HomeControllerImpl.home(HomeControllerImpl.java:54) 
    sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    java.lang.reflect.Method.invoke(Method.java:606) 
    org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219) 
    org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132) 
    org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:745) 
    org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:686) 
    org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80) 
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925) 
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856) 
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:936) 
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:827) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:620) 
    org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:812) 
    javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
    org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) 

我的生產tomcat是綁定地址:127.0.0.1 pingable和telnet 3306工作正常。

這是我已經試過: - 使用Tomcat連接池(在CATALINA_HOME/lib下的MySQL驅動jar)
- 對Java
安裝的libmysql - 設置默認的JDK 1.7(內置版本)
- 試了舊版本的MySQL驅動的
- 將同一場戰爭中Eclipse和生產(工作正常的日食)
- 經過tomcat的綁定ADRESS(127.0.0.1)
- 經過的Tomcat默認的類加載路徑(CATALINA_BASE/lib目錄/*.jar)

最後但並非最不重要的一點是,當我用jdbc連接在Tomcat的ROOT中放置標準的jsp測試頁面時,在我的應用程序中一切正常。它看起來像春不加載驅動程序(Class.forName())。有任何想法嗎 ?

+0

我們需要你的POM。 – chrylis 2014-10-28 12:13:05

+0

完成。謝謝你的時間。 – Mednnet 2014-10-28 12:16:17

+0

你屬性文件正在加載?你能讓知道異常跟蹤? – 2014-10-28 12:23:32

回答

1

我終於找到了解決方案!我認爲這將是我上一次的Spring應用程序:這個框架增長得太快了。

我使用了org.springframework.jdbc.datasource。DriverManagerDataSource現在已被棄用。

<bean id="dataSource" 
     class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 

要解決它,我用org.apache.commons.dbcp.BasicDataSource代替

<bean id="dataSource" 
     class="org.apache.commons.dbcp.BasicDataSource"> 

這裏是Maven的依賴

<dependency> 
    <groupId>commons-dbcp</groupId> 
    <artifactId>commons-dbcp</artifactId> 
    <version>1.4</version> 
</dependency> 

享受!

相關問題