ssm+maven+sqlserver2012项目导入后切换数据源sqlerver2012报错Error creating bean with name 'webController': Inject

**
这是tomcat启动后所报的错误,无法自动注解!在这里插入图片描述

1.切换sqlerver2012后jdbc配置如下**
在这里插入图片描述
这里和mysql的jdbc配置就url和driverClassName有些区别

2.mybatis的bean配置如下:这里要注意是扫描mapper文件的配置

<?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:context="http://www.springframework.org/schema/context"
	xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
    http://www.springframework.org/schema/context
    http://www.springframework.org/schema/context/spring-context-3.2.xsd
    http://www.springframework.org/schema/tx
    http://www.springframework.org/schema/tx/spring-tx-3.2.xsd
    http://www.springframework.org/schema/aop
    http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
    http://www.springframework.org/schema/util
    http://www.springframework.org/schema/util/spring-util-3.2.xsd">

	<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
		 destroy-method="close">
		<property name="driverClassName">
			<value>${jdbc_driverClassName}</value>
		</property>
		<property name="url">
			<value>${jdbc_url}</value>
		</property>
		<property name="username">
			<value>${jdbc_username}</value>
		</property>
		<property name="password">
			<value>${jdbc_password}</value>
		</property>
		<!-- 连接池最大使用连接数 -->
		<property name="maxActive">
			<value>400</value>
		</property>
	<!-- 	初始化连接大小 -->
		<property name="initialSize">
			<value>20</value>
		</property>
	<!-- 	获取连接最大等待时间 -->
		<property name="maxWait">
			<value>30000</value>
		</property>

		<!-- 连接池最小空闲 -->
		<property name="minIdle">
			<value>50</value>
		</property>
		<!-- 自动清除无用连接 -->
		<property name="removeAbandoned">
			<value>true</value>
		</property>
		<!-- 清除无用连接的等待时间 -->
		<property name="removeAbandonedTimeout">
			<value>180</value>
		</property>
				
		<!-- 连接属性 -->
		<property name="connectionProperties">
			<value>clientEncoding=UTF-8</value>
		</property>
		<!-- 在空闲连接回收器线程运行期间休眠的时间值,以毫秒为单位. -->
		<!-- <property name="timeBetweenEvictionRunsMillis" value="10000" /> -->
	</bean>
	<bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate">
		<constructor-arg index="0" ref="sqlSessionFactory" />
	</bean>
	<!-- mybatis文件配置,扫描所有mapper文件 --><!-- configLocation为mybatis属性 mapperLocations为所有mapper -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"
		p:dataSource-ref="dataSource" p:configLocation="classpath:configs/mybatis-config.xml"
		p:typeAliasesPackage="com.wq.**.model" p:mapperLocations="classpath:**/mapping/*.xml">
	<!-- 	<property name="plugins">
			<list>
				<bean
					class="com.github.miemiedev.mybatis.paginator.OffsetLimitInterceptor">
					<property name="dialectClass"
						value="com.github.miemiedev.mybatis.paginator.dialect.MySQLDialect"></property>
				</bean>
			</list>
		</property> -->
	</bean>

	<!-- spring与mybatis整合配置,扫描所有dao -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"
		p:basePackage="com.wq.**.dao.*" p:sqlSessionFactoryBeanName="sqlSessionFactory" />

<!-- 	 对数据源进行事务管理  -->
	<bean id="transactionManager"
		class="org.springframework.jdbc.datasource.DataSourceTransactionManager"
		p:dataSource-ref="dataSource" />
	
	<!--<tx:annotation-driven transaction-manager="transactionManager" /> -->
	<!-- 事物切面配置 -->  
	<tx:advice id="advice" transaction-manager="transactionManager">  
    	<tx:attributes>  
       	  <tx:method name="update*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="insert*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="complete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="reduce*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="add*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="save*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
      	  <tx:method name="delete*" propagation="REQUIRED" read-only="false" rollback-for="java.lang.Exception"/>  
    	</tx:attributes>  
	</tx:advice>  
	 
	<aop:config>  
 	   <aop:pointcut id="baseService" expression="execution (* com.**.**.service.*.*(..))"/>  
  	   <aop:advisor advice-ref="advice" pointcut-ref="baseService"/>  
	</aop:config>

</beans>

3.到这步对比了一下网上大神的配置都没啥问题(前提你自己导入sqlserver的jar包没问题,这个可以自己写个main程序测试一下有能不能拿到数据)
**4.接下来看问题的本质,报错的那行红的是webController这个里面通过注解方式引入的server接口的实现类有问题,所以此类问题要排查所处问题的java类里面的注解实现类有没有问题,后来发现是注解homeUserServer里面有了一个注解的serve有问题,是因为我拷贝过来的项目用到了dubbo,这个提供者和消费者的配置文件被我在web.xml里面注销掉了,但是tomcat启动服务加载时webController里面homeUserServe用到这个服务,但是没有找到对应的配置所以报错,把用到的屏蔽就好了,数据访问也ok。

5.讲一下这个问题的心得吧,这类问题大多数是注解类引发的问题,要注意配置文件的增删,@Service有无缺失,以及你的实现类是不是抽象的没去掉,这只是在我的项目里发生的问题,只能参考,因为个人环境项目情况不一样,只要你能很好的描述问题就一定能解决,一个菜鸡的感慨,谢谢大家一起讨论,指教。

在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值