当前位置: 首页 > 知识库问答 >
问题:

创建bean时出错,自动连线依赖项的注入失败,无法自动连线字段

韦德厚
2023-03-14

被异常卡住,下面是日志:

org.springframework.beans.factory.BeanCreation异常:创建名为扬声器的bean时出错:注入自动生成的依赖项失败;嵌套异常是org.springframework.beans.factory.BeanCreation异常:无法自动连接方法:公共最终无效org.mybatis.spring.support.SqlSessionDaoSupport.setSqlSessionTem板(org.mybatis.spring.SqlSessionTemboard);嵌套异常是java.lang.NoSuch方法错误:org.springframework.core.方法arameter.getNestedParameterType()Ljava/lang/Class

java web服务:

@WebService
public class voiceRecognition extends SpringBeanAutowiringSupport {
    @Autowired
    private Speaker speaker;


    @WebMethod
    public void test() {

        String userid = "111";
        String enrollmentid = "111";

        try{
        String test1 = speaker.getEnrollmentId(userid);  
        System.out.println(test1);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }    
    }
}

发言者爪哇:

package ph.com.aub.mapper;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Service;

@Service
public interface Speaker {

    public String getEnrollmentId(@Param("userid") String userid);

}

发言者xml:

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace = "ph.com.aub.mapper.Speaker">

<select id = "getEnrollmentId" resultType = "string" parameterType = "string">
Select enrollmentid from speakerids where userid = #{userid}
</select>

</mapper>

网状物xml:

<?xml version = '1.0' encoding = 'windows-1252'?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
         version="2.5">

  <servlet>
    <servlet-name>voiceRecognitionPort</servlet-name>
     <!--<servlet-class>ph.com.aub.domain.voiceRecognition</servlet-class>-->
    <servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>voiceRecognitionPort</servlet-name>
    <url-pattern>/voiceRecognitionPort</url-pattern>
  </servlet-mapping>

 <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>
</web-app>

应用程序上下文。xml:

<?xml version="1.0" encoding="UTF-8" ?>

<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:context="http://www.springframework.org/schema/context"
    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-3.0.xsd
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="ph.com.aub.domain.voiceRecognition"/>
    <context:component-scan base-package="ph.com.aub.mapper"/>
    <context:annotation-config/>


    <bean id="dataSourceSpeaker" class="org.springframework.jndi.JndiObjectFactoryBean">
        <property name="jndiName" value="Speakerdata"/>
    </bean>

    <bean id="sqlSessionFactorySpeaker" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSourceSpeaker"/>
        <property name="typeAliasesPackage" value="ph.com.aub.domain"/>
        <property name="configLocation" value="/WEB-INF/mybatis-config.xml"/>
    </bean>

    <bean id="mapperSpeaker" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="ph.com.aub.mapper" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactorySpeaker" />
    </bean>

</beans>

共有1个答案

仲孙子辰
2023-03-14

我相信您在MapperScannerConfiguration中配置的basePackage不正确。它应该是包含映射器类的包,而不是映射器类本身。因此,尝试将basePackage更改为:

<bean id="mapperSpeaker" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
    <property name="basePackage" value="ph.com.aub.mapper" />
    <property name="sqlSessionFactoryBeanName" value="sqlSessionFactorySpeaker" />
</bean>
 类似资料:
  • 我在Spring+SpringMVC+Hibernate+MySQL web应用程序中的Spring配置有一个问题。Spring无法创建我在Service类中宣布的bean。 下面是Controller类 应用程序-上下文 最后是我的StackTrace 原因:org.SpringFramework.Beans.Factory.BeanCreationException:无法自动连接字段:priv

  • 这是我的当前设置:ProjectRepo: ProjectService: ProjectRestController:

  • 请帮我解决这个问题 错误日志: 控制器类: DAO类: 服务等级: Bean配置: 当spring试图创建< code > private UserService UserService时,它的自动连接似乎有问题; bean。作为参考,我检查了这些。 自动连线依赖项的注入失败; 上下文:组件扫描“未绑定 注入自动安装的依赖项失败,而试图访问道bean 这些并没有解决我的问题,因为我的代码中已经有这

  • 这是我的项目的结构: SCR/主/Java/COM/公司/配置 SCR/主/Java/COM/公司/控制器 SCR/Main/Java/COM/Company/MyProject SCR/主/Java/COM/公司/例外 在配置中,我有3个类:ProjectInitializer、ProjectConfiguration和ProjectContextListener。 ==============

  • 问题内容: 我正在开发一个小型Java EE Hibernate Spring应用程序,出现错误: 这是我的控制器ArticleControleur,其中包含用于恢复文章列表的功能: 这是我的articleService: 这是我的应用程序上下文: 问题答案: 该错误表明不是注册的Bean。添加其中包含将在你的应用程序上下文中自动装配的bean的软件包: 或者,如果你想将所有子包包括在com.bd

  • 在试图通过浏览器访问我的应用程序时,我遇到了不少错误。错误包括: 无法自动连线方法:public void com。ProjectOne。Util。自定义HibernatedAOSupport。anyMethodName(org.hibernate.SessionFactory);嵌套的异常是org。springframework。豆。工厂NoSuchBeanDefinitionException