java.sql.SQLException:没有合适的驱动程序<tx:annotation-driven />

娜伊姆·巴吉(Naeem Baghi)

我正在使用hibernate 4.1.4,struts 2.1和spring 3.1.1创建一个Web项目,但是我遇到了一个问题。我不知道为什么会这样:当我使用它时,会向我显示如下错误:

Cannot create JDBC driver of class '' for connect URL 'jdbc:mysql://localhost:3306/enrollment'
java.sql.SQLException: No suitable driver
at java.sql.DriverManager.getDriver(DriverManager.java:278)
at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1437)
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1371)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
at org.hibernate.service.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:141)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcServicesImpl.java:242)
at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:117)
at org.hibernate.service.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:75)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:159)
at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:131)
at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:71)
at org.hibernate.cfg.Configuration.buildSettingsInternal(Configuration.java:2277)
at org.hibernate.cfg.Configuration.buildSettings(Configuration.java:2273)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1742)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1782)
at org.springframework.orm.hibernate4.LocalSessionFactoryBuilder.buildSessionFactory(LocalSessionFactoryBuilder.java:189)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:350)
at org.springframework.orm.hibernate4.LocalSessionFactoryBean.afterPropertiesSet(LocalSessionFactoryBean.java:335)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1514)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1452)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:519)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:294)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:225)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:567)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:913)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:464)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<init>(ClassPathXmlApplicationContext.java:83)
at com.rpkavosh.actions.AddNewStudent.execute(AddNewStudent.java:44)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248)
at com.opensymphony.xwork2.interceptor.AliasIntercep

而且它不会经过服务层之类的弹簧层,但是当我从applicationContext.xml中删除此行代码时,它将经过服务层,然后到达dao,但是我无法创建任何会话:HibernateException没有找到当前的会话线程,我的applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans
xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-3.0.xsd" 
xmlns:tx="http://www.springframework.org/schema/tx">


<bean id="dataSource"
    class="org.apache.commons.dbcp.BasicDataSource">
    <property name="url"
        value="jdbc:mysql://localhost:3306/enrollment">
    </property>
    <property name="username" value="root"></property>
    <property name="password" value="root"></property>
</bean>
<bean id="sessionFactory"
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
    <property name="dataSource">
        <ref bean="dataSource" />
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">
                org.hibernate.dialect.MySQLDialect
            </prop>
        </props>
    </property>
    <property name="mappingResources">
        <list>
            <value>com/rpkavosh/hibernate/Students.hbm.xml</value>
            <value>com/rpkavosh/hibernate/Enrollment.hbm.xml</value>
            <value>com/rpkavosh/hibernate/Classroom.hbm.xml</value></list>
    </property>

    <!-- <property name="mappingLocations">
        <list>
            <value>classpath*:/com/rpkavosh/hibernate/Students.hbm.xml</value>
            <value>classpath*:/com/rpkavosh/hibernate/Enrollment.hbm.xml</value>
            <value>classpath*:/com/rpkavosh/hibernate/Classroom.hbm.xml</value></list>
    </property>-->

</bean>
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
</bean>

<!--<tx:advice id="txAdvice" transaction-manager="transactionManager" >
    <tx:attributes>
        <tx:method name="find*" read-only="true" />
        <tx:method name="*"/>
    </tx:attributes>
</tx:advice>-->

<!--<aop:config>-->
<!--<aop:pointcut  id="serviceUpdateOperations" expression="execution(* *ServiceImpl.*(..))" />-->
<!--<aop:advisor advice-ref="txAdvice" pointcut-ref="serviceUpdateOperations"/>-->
<!--</aop:config>-->


<tx:annotation-driven transaction-manager="transactionManager"/>
<bean
    id="StudentsDAO" class="com.rpkavosh.hibernate.StudentsDAO">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

<bean id="StudentService" class="com.rpkavosh.service.StudentServiceImpl">
    <property name="dao" ref="StudentsDAO"/>
</bean>

<bean id="EnrollmentDAO"
    class="com.rpkavosh.hibernate.EnrollmentDAO">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>
<bean id="ClassroomDAO"
    class="com.rpkavosh.hibernate.ClassroomDAO">
    <property name="sessionFactory">
        <ref bean="sessionFactory" />
    </property>
</bean>

也许很有用,当我调试我的项目时,它将通过此​​操作

public String execute() {
    if(firstName.equals("") || lastName.equals("")){
        return ERROR;
    }

    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    Students student = new Students();
    student.setFirstName(firstName);
    student.setLastName(lastName);
    StudentService service = (StudentService) ctx.getBean("StudentService");
    service.addStudent(student);
    return SUCCESS;
}

当我使用tx:annotations时,它想打开类JdkDynamicAopProxy,但它不能打开,但是当我不使用tx:annotations时,它将转到StudentServiceImpl.addStudent(student)!

我很困惑,这是我第一个使用j2ee的项目,我应该在明天早晨:|交付它,因此任何建议都将不胜感激。

Darshan Lila

您的数据源Bean应该如下所示

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">  
        <property name="driverClassName"  value="com.mysql.jdbc.Driver"></property>  
        <property name="url" value="jdbc:mysql://localhost:3306/enrollment"></property>  
        <property name="username" value="root"></property>  
        <property name="password" value="root"></property>  
    </bean>  

请注意,您缺少driverClassName基本数据源中的属性。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何解决异常java.sql.SQLException:没有找到合适的驱动程序?

线程“main”中的异常 java.sql.SQLException:运行 spark-submit 时没有合适的驱动程序

如何解决错误:java.sql.SQLException:Spring安全中没有合适的驱动程序?

java.sql.SQLException: 找不到合适的驱动程序 (SQL Server Express)

Java + Jersey + Gradle-java.sql.SQLException:找不到合适的驱动程序

Spring Boot + Flyway + AWS:原因:java.sql.SQLException:找不到合适的驱动程序

JayDeBeApi触发java.sql.SQLException:找不到合适的驱动程序

java.sql.SQLException:找不到合适的驱动程序-报表服务器

无法打开连接 [n/a] java.sql.SQLException: 找不到合适的驱动程序

java.sql.SQLException:将DataFrame加载到Spark SQL中时找不到合适的驱动程序

java数据库连接最终以db:java.sql.SQLException:未找到合适的驱动程序

为什么我会收到 java.sql.SQLException:当 url 正确且驱动程序存在时找不到合适的驱动程序?

找不到合适的驱动程序(Postgres JDBC):java.sql.SQLException:找不到适用于jdbc:postgresql:// rds-service:5432 / postgres的驱动程序

javax.servlet.jsp.JspException:无法建立连接,DataSource无效:“ java.sql.SQLException:未找到合适的驱动程序”

groovy:捕获:java.sql.SQLException:即使使用@GrabConfig(systemClassLoader=true)也找不到合适的驱动程序

java.sql.SQLException找不到合适的驱动程序,但可以在Netbeans中完美连接

春天“元素“ tx:annotation-driven”的前缀“ tx”未绑定。”

java.sql.SQLException:找不到适合的驱动程序

出现此错误:-“java.sql.SQLException:找不到合适的驱动程序”。当我使用 Hibernate Config 进行反向工程时。我的数据库

尽管有驱动程序,但 Java 编译器显示“java.sql.SQLException:找不到适合 jdbc::mysql://localhost:3306/test 的驱动程序”

SparkSQL MS SQL Server,编译后获取消息“没有合适的驱动程序”

java.sql.SQLException:未找到适合jdbc:sqlserver://的驱动程序-基于Java的Azure函数

java.sql.SQLException: 找不到适合 jdbc:mysql://localhost/WORLD 的驱动程序

java.sql.SQLException:找不到适合jdbc:hive:// localhost:10000 / default的驱动程序

Groovy java.sql.SQLException:找不到适合 jdbc:sqlserver:// 的驱动程序

java.sql.SQLException:找不到适用于jdbc:microsoft:sqlserver的驱动程序

Scala错误:java.sql.SQLException:找不到适用于jdbc:calcite的驱动程序:

java.sql.SQLException:找不到适合 jdbc://localhost:3306/twitch 的驱动程序

java.sql.SQLException:找不到适用于jdbc:sqlite的驱动程序