Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.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 SPRING4:读取候选组件类CouchbaseConfig.class失败_Java_Spring Mvc_Spring Boot_Spring Data Couchbase - Fatal编程技术网

Java SPRING4:读取候选组件类CouchbaseConfig.class失败

Java SPRING4:读取候选组件类CouchbaseConfig.class失败,java,spring-mvc,spring-boot,spring-data-couchbase,Java,Spring Mvc,Spring Boot,Spring Data Couchbase,我有个问题。我正在使用Spring4,我想添加一个配置,以便能够使用spring data couchbase,但我有一个错误: org.springframework.beans.factory.BeanDefinitionStoreException:未能读取候选组件类:文件 [/home/charlie/Desktop/Ultimate Projects/novare_dashboard/novare project dashboard/target/classes/hk/com/nova

我有个问题。我正在使用Spring4,我想添加一个配置,以便能够使用spring data couchbase,但我有一个错误:


org.springframework.beans.factory.BeanDefinitionStoreException:未能读取候选组件类:文件 [/home/charlie/Desktop/Ultimate Projects/novare_dashboard/novare project dashboard/target/classes/hk/com/novare/dashboard/configuration/CouchbaseConfig.class]; 嵌套异常为java.lang.annotation.AnnotationFormatError: 无效默认值:public abstract java.lang.Class org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories.repositoryBaseClass() 在 org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider.findCandidateComponents(ClassPathScanningCandidateComponentProvider.java:303)

这是我的密码:

CouchbaseConfig.java

@Configuration
@EnableCouchbaseRepositories
public class CouchbaseConfig extends AbstractCouchbaseConfiguration{

@Override
protected List<String> bootstrapHosts() {
    return Collections.singletonList("localhost");
}

@Override
protected String getBucketName() {
    return "crud";
}

@Override
protected String getBucketPassword() {
    return "password";
}}
@Configuration
@EnableWebMvc
@ComponentScan(basePackageClasses = Application.class)
public class WebMvcConfig extends WebMvcConfigurerAdapter {

@Override
public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    configurer.enable();
}

@Bean
public InternalResourceViewResolver jspViewResolver() {
    InternalResourceViewResolver bean = new InternalResourceViewResolver();
    bean.setPrefix("/WEB-INF/views/");
    bean.setSuffix(".jsp");
    return bean;
}

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("/static/**").addResourceLocations("/WEB-INF/static/");
}}
POM.XML

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!--H2-->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
        <scope>runtime</scope>
    </dependency>

    <!--couchbase-->
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-couchbase</artifactId>
        <version>1.4.0.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>com.couchbase.client</groupId>
        <artifactId>couchbase-client</artifactId>
        <version>1.4.9</version>
    </dependency>
    <dependency>
        <groupId>cglib</groupId>
        <artifactId>cglib</artifactId>
        <version>3.0</version>
    </dependency>

    <!--JSON-->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>${jackson.version}</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.1.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.2</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>

</dependencies>


org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
SpringBootStarterWeb
com.h2数据库
氢
运行时
org.springframework.data
spring数据库
1.4.0.1发布
com.couchbase.client
couchbase客户端
1.4.9
cglib
cglib
3
com.fasterxml.jackson.core
杰克逊数据绑定
${jackson.version}
javax.servlet
javax.servlet-api
3.1.0
javax.servlet
jstl
1.2
org.springframework.boot
弹簧起动试验
测试

可以看到缺少repositoryBaseClass配置的错误,该配置是为CouchbaseConfig类创建存储库代理所必需的:-

nested exception is java.lang.annotation.AnnotationFormatError: Invalid default: public abstract java.lang.Class 
org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories.repositoryBaseClass() at 

请指定与@EnableCouchbaseRepositories相同的参数

我刚刚找到了一个关于我的错误的解决方案。您必须将spring data couchbase版本更改为1.2.2,并将注释@Repository删除到您的存储库中

我在basePackages和BaseClassePackage之前也尝试过,但仍然是相同的.org.springframework.beans.factory.BeanDefinitionStoreException:无法读取候选组件类:文件[/home/charlie/Desktop/Ultimate Projects/novare_dashboard/novare project dashboard/target/classes/hk/com/novare/dashboard/configuration/CouchbaseConfig.class];嵌套异常为java.lang.annotation.AnnotationFormatError:无效默认值:public abstract java.lang.Class org.springframework.data.couchbase.repository.config.EnableCouchbaseRepositories.repositoryBaseClass()*我还添加了参数,但仍然是相同的@EnableCouchbaseRepositories(basePackages=“hk.com.novare.dashboard”)您是否在扩展CouchbaseConfig的包中定义了@Repository的任何接口???@Repository公共接口PersonRepository extends Crudepository{}**这是我的PersonRepository类。我导入该类:->导入org.springframework.data.repository.crudepository;使用spring data couchbase 1.2.2并删除存储库上的@repository,它将正常工作。我也遇到了同样的问题,您找到解决方案了吗?