我的mysql-connector jar在:
1。)Tomcat Server lib
2。)构建路径作为外部JAR。 *从Maven依赖项中删除,尽管它仍然存在相同的错误。
jdbc.properties
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.dialect=org.hibernate.dialect.MySQLDialect
jdbc.databaseurl=jdbc:mysql//localhost:3306/test
jdbc.username=root
jdbc.password=****
web.xml 使用代码段添加它:
<resource-ref>
<description>DB Connection</description>
<res-ref-name>jdbc/test</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
我完整的 servlet-context.xml
<context:annotation-config />
<context:component-scan base-package="org.springsecudev.controller" />
<context:component-scan base-package="org.springsecudev.model" />
<context:component-scan base-package="org.springsecudev.service" />
<context:component-scan base-package="org.springsecudev.dao" />
<beans:bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"
p:location="/WEB-INF/jdbc.properties">
</beans:bean>
<beans:bean id="dataSource" class="org.apache.commons.dbcp2.BasicDataSource"
destroy-method="close" p:driverClassName="${jdbc.driverClassName}"
p:url="${jdbc.databaseurl}" p:username="${jdbc.username}" p:password="${jdbc.password}">
</beans:bean>
<beans:bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<beans:property name="dataSource" ref="dataSource"/>
<beans:property name="configLocation">
<beans:value>classpath:hibernate.cfg.xml</beans:value>
</beans:property>
<beans:property name="configurationClass">
<beans:value>org.hibernate.cfg.AnnotationConfiguration</beans:value>
</beans:property>
<beans:property name="hibernateProperties">
<beans:props>
<beans:prop key="hibernate.dialect">${jdbc.dialect}</beans:prop>
<beans:prop key="hibernate.show_sql">true</beans:prop>
</beans:props>
</beans:property>
</beans:bean>
<!-- Handles HTTP GET requests for /resources/** by efficiently serving up static resources in the ${webappRoot}/resources directory -->
<resources mapping="/resources/**" location="/resources/" />
<!-- Resolves views selected for rendering by @Controllers to .jsp resources in the /WEB-INF/views directory -->
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<beans:bean id="transactionManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<beans:property name="sessionFactory" ref="sessionFactory"></beans:property>
</beans:bean>
<interceptors>
<beans:bean id="webContentInterceptor"
class="org.springframework.web.servlet.mvc.WebContentInterceptor">
<beans:property name="cacheSeconds" value="0"/>
<beans:property name="useExpiresHeader" value="true"/>
<beans:property name="useCacheControlHeader" value="true"/>
<beans:property name="useCacheControlNoStore" value="true"/>
</beans:bean>
</interceptors>
<beans:bean id="encoder"
class="org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder">
<beans:constructor-arg value="12"></beans:constructor-arg>
</beans:bean>
我还在META-INF中添加了 context.xml ,以确保我也尝试了这个
<Context>
<WatchedResource>WEB-INF/web.xml</WatchedResource>
<Resource name="jdbc/test"
username="root"
password="root"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/test"
auth="Container"
type="javax.sql.DataSource"
maxActive="100"
maxIdle="30"
maxWait="10000"
initialSize="1"/>
但仍然没有运气,它也有同样的错误:
INFO:org.springframework.beans.factory.support.DefaultListableBeanFactory - 在org.springframework.beans.factory.support.DefaultListableBeanFactory@39c45c72中预实例化单例:定义bean [org.springframework.context.annotation.internalConfigurationAnnotationProcessor,org .springframework.context.annotation.internalAutowiredAnnotationProcessor,org.springframework.context.annotation.internalRequiredAnnotationProcessor,org.springframework.context.annotation.internalCommonAnnotationProcessor,org.springframework.context.annotation.internalPersistenceAnnotationProcessor,propertyConfigurer,数据源,SessionFactory对象,org.springframework.web .servlet.resource.ResourceHttpRequestHandler#0,org.springframework.web.servlet.handler.SimpleUrlHandlerMapping#0,org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping,org.springframework.web.servlet.mvc.HttpRequestHandlerAdapter,org.springframework .web.servlet.mvc.SimpleControllerHandlerAdapter,org.springframework.web.servlet.vi ew.InternalResourceViewResolver#0,transactionManager的,org.springframework.web.servlet.handler.MappedInterceptor#0,编码器,org.springframework.context.annotation.ConfigurationClassPostProcessor $ ImportAwareBeanPostProcessor#0]; parent:org.springframework.beans.factory.support.DefaultListableBeanFactory@31e0a986 警告:org.hibernate.util.JDBCExceptionReporter - SQL错误:0,SQLState:null 错误:org.hibernate.util.JDBCExceptionReporter - 无法为连接URL'jdbc:mysql // localhost:3306 / test'创建类'com.mysql.jdbc.Driver'的JDBC驱动程序 警告:org.hibernate.cfg.SettingsFactory - 无法获取连接元数据 java.sql.SQLException:无法为连接URL'jdbc:mysql // localhost:3306 / test'创建类'com.mysql.jdbc.Driver'的JDBC驱动程序 在org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2160)....... [缩短] 引起:java.sql.SQLException:没有合适的驱动程序 在org.apache.commons.dbcp2.BasicDataSource.createConnectionFactory(BasicDataSource.java:2151) ......还有40多个
我一直试图找出可能存在的问题,其中我在构建路径和服务器库中复制了jar。
答案 0 :(得分:1)
您似乎错过了文件jdbc.properties
中冒号的数据库网址。
jdbc:mysql//localhost:3306/test
我认为应该是
jdbc:mysql://localhost:3306/test