Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.test.api.controller.CheckerController中的字段检查器需要类型为';org.test.api.checker.checker';那是找不到的_Java_Spring_Spring Boot - Fatal编程技术网

Java org.test.api.controller.CheckerController中的字段检查器需要类型为';org.test.api.checker.checker';那是找不到的

Java org.test.api.controller.CheckerController中的字段检查器需要类型为';org.test.api.checker.checker';那是找不到的,java,spring,spring-boot,Java,Spring,Spring Boot,从IntellijIDEA运行Spring应用程序时出现以下错误 2017-04-20 18:20:50.645 ERROR 28680 --- [main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Field checker in org.test.a

从IntellijIDEA运行Spring应用程序时出现以下错误

2017-04-20 18:20:50.645 ERROR 28680 --- [main] o.s.b.d.LoggingFailureAnalysisReporter   :

***************************
APPLICATION FAILED TO START
***************************

Description:

Field checker in org.test.api.controller.CheckerController required a bean of type 'org.test.api.checker.Checker' that could not be found.


Action:

Consider defining a bean of type 'org.test.api.checker.Checker' in your configuration.
但是,我在路径
org.test.api.Checker.Checker
中有类
Checker

这是类CheckerController的示例代码:

@RestController
@RequestMapping("/api/{clientId}")
public class CheckerController {

    @Autowired
    Validator validator;

    @Autowired
    @Qualifier("Checker")
    Checker checker;


    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Context.class, new ContextEditor());
    }

@RequestMapping(value = "/{userId}/{sessionId}/check", method = RequestMethod.GET)
public CheckResults check(@PathVariable String clientId,
                                 @PathVariable String userId,
                                 @PathVariable String sessionId) {
    CheckRequest checkRequest = new CheckRequest(CheckRequest.TYPE_1, clientId, userId, sessionId);
    this.validateRequest(checkRequest);
    return checker.check(checkRequest);
}

}
public interface Checker {

    CheckResults check(CheckRequest request);

}
检查器

@RestController
@RequestMapping("/api/{clientId}")
public class CheckerController {

    @Autowired
    Validator validator;

    @Autowired
    @Qualifier("Checker")
    Checker checker;


    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(Context.class, new ContextEditor());
    }

@RequestMapping(value = "/{userId}/{sessionId}/check", method = RequestMethod.GET)
public CheckResults check(@PathVariable String clientId,
                                 @PathVariable String userId,
                                 @PathVariable String sessionId) {
    CheckRequest checkRequest = new CheckRequest(CheckRequest.TYPE_1, clientId, userId, sessionId);
    this.validateRequest(checkRequest);
    return checker.check(checkRequest);
}

}
public interface Checker {

    CheckResults check(CheckRequest request);

}
如何解决这个问题

更新:

@Service
public class CheckerImpl implements Checker {

    @Override
    public CheckResults check(CheckRequest request)
    {
       // ...
    }
}
pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<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>org.test</groupId>
    <artifactId>mytestapi</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <java.version>1.8</java.version>
        <spark.version>1.6.1</spark.version>
        <es.version>2.2.0</es.version>
    </properties>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.4.5.BUILD-SNAPSHOT</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.data</groupId>
            <artifactId>spring-data-elasticsearch</artifactId>
            <version>2.0.0.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>com.github.spullara.mustache.java</groupId>
            <artifactId>compiler</artifactId>
            <version>0.9.1</version>
        </dependency>
        <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>${es.version}</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>2.9.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.jena</groupId>
            <artifactId>jena-tdb</artifactId>
            <version>3.0.0</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20160810</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.10</artifactId>
            <version>${spark.version}</version>
        </dependency>
        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
            <version>1.10.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.8.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-scala_2.10</artifactId>
            <version>2.8.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queryparser</artifactId>
            <version>6.5.0</version>
        </dependency>
    </dependencies>

    <repositories>
        <repository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </repository>
        <repository>
            <id>spring-snapshots</id>
            <name>Spring Snapshots</name>
            <url>https://repo.spring.io/libs-snapshot</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    <pluginRepositories>
        <pluginRepository>
            <id>spring-releases</id>
            <url>https://repo.spring.io/libs-release</url>
        </pluginRepository>
    </pluginRepositories>

</project>

4.0.0
组织测试
mytestapi
1.0-快照
UTF-8
UTF-8
1.8
1.6.1
2.2.0
org.springframework.boot
spring启动程序父级
1.4.5.构建快照
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧起动试验
测试
org.springframework.data
弹簧数据弹性搜索
2.0.0.1版本
com.github.spullara.mustache.java
编译程序
0.9.1
org.elasticsearch
弹性搜索
${es.version}
乔达时间
乔达时间
2.9.3
org.apache.jena
杰娜tdb
3.0.0
编译
org.json
json
20160810
编译
org.apache.spark
spark-sql_2.10
${spark.version}
org.jsoup
jsoup
1.10.2
com.fasterxml.jackson.core
杰克逊数据绑定
2.8.2
com.fasterxml.jackson.module
jackson-module-scala_2.10
2.8.2
org.apache.lucene
卢克尼探险家
6.5.0
春假
https://repo.spring.io/libs-release
春季快照
春季快照
https://repo.spring.io/libs-snapshot
真的
春假
https://repo.spring.io/libs-release

原始错误是由于使用了无效的限定符
@qualifier(“Checker”)
。上下文中不存在id为“Checker”的bean。因为只有一个合适的实现使用额外的限定符是无用的。

原始错误是由于使用了无效的限定符
@Qualifier(“Checker”)
。上下文中不存在id为“Checker”的bean。因为只有一个合适的实现使用额外的
@Qualifier
是无用的。

当您通过
@Qualifier(“Checker”)
自动连接时,请在CheckerImpl类的
@Service
中定义bean名称

@Service("Checker")
public class CheckerImpl implements Checker {

    @Override
    public CheckResults check(CheckRequest request)
    {
       // ...
    }
}

当您通过
@Qualifier(“Checker”)
自动连接时,请在CheckerImpl类的
@Service
中定义bean名称

@Service("Checker")
public class CheckerImpl implements Checker {

    @Override
    public CheckResults check(CheckRequest request)
    {
       // ...
    }
}


发布你的Checker类和配置类。@shi:我发布了类
Checker
。你所说的配置类是什么意思?我知道Checker是一个接口,你有这个接口的实现吗?我所说的配置类是指声明spring配置或使用xml配置的类?@shi:好的,我发布了实现类
CheckerImpl
以及
pom.xml
。谢谢。发布你的Checker类和配置类。@shi:我发布了类
Checker
。你所说的配置类是什么意思?我知道Checker是一个接口,你有这个接口的实现吗?我所说的配置类是指声明spring配置或使用xml配置的类?@shi:好的,我发布了实现类
CheckerImpl
以及
pom.xml
。谢谢。对不起,我对春天的了解有点有限。请指定上下文中不存在id为“Checker”的bean是什么意思?我应该在哪里指定它?我有一个抽象类
Checker
及其实现类
CheckerImpl
。在
CheckerController
中,我定义了
@Autowired@Qualifier(“Checker”)
,我将其理解为使用类
Checker
的要求。不需要限定符注释。只有当您有多个相同类型的bean时,才有必要通过名称来区分它们。如果你想保留它,你必须给checkerimplbean取一个相同的名字
@Service(“Checker”)
对不起,我对Spring的了解有点有限。请指定上下文中不存在id为“Checker”的bean是什么意思?我应该在哪里指定它?我有一个抽象类
Checker
及其实现类
CheckerImpl
。在
CheckerController
中,我定义了
@Autowired@Qualifier(“Checker”)
,我将其理解为使用类
Checker
的要求。不需要限定符注释。只有当您有多个相同类型的bean时,才有必要通过名称来区分它们。如果你想保留它,你必须给CheckerImpl bean一个相同的名字
@Service(“Checker”)
。在这种情况下,我得到了另一个错误:
org.springframework.beans.factory.BeanCreationException:创建名为'requestMappingHandlerAdapter'的bean时出错,该bean在类路径资源中定义了'requestMappingHandlerAdapter'[org/springframework/boot/autoconfigure/web/web
。这是什么意思?请共享您的spring boot配置文件我只有
pom.xml
。我没有任何其他规范文件。pom.xml是maven构建文件而不是spring配置文件。正在查找