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
Spring数据Rest引导问题_Spring_Spring Mvc_Spring Data Rest - Fatal编程技术网

Spring数据Rest引导问题

Spring数据Rest引导问题,spring,spring-mvc,spring-data-rest,Spring,Spring Mvc,Spring Data Rest,我正在用SpringDataREST编写一个rest服务。我面临一个我不知道如何解决的例外 我有以下应用程序配置 @Configuration @ComponentScan(basePackageClasses = Application.class) @EnableJpaRepositories @EnableTransactionManagement public class Application { @Bean public DataSource dataSource(

我正在用SpringDataREST编写一个rest服务。我面临一个我不知道如何解决的例外

我有以下应用程序配置

@Configuration
@ComponentScan(basePackageClasses = Application.class)
@EnableJpaRepositories
@EnableTransactionManagement
public class Application {

    @Bean
    public DataSource dataSource() {
        return new EmbeddedDatabaseBuilder().setType(H2).build();
    }

    @Bean
    public CustomerLoader loadCustomers() { 
        return new CustomerLoader();
    }

    @Bean
    public LocalContainerEntityManagerFactoryBean entityManagerFactory(DataSource dataSource, JpaVendorAdapter jpaVendorAdapter) {
        LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
        lef.setDataSource(dataSource);
        lef.setJpaVendorAdapter(jpaVendorAdapter);
        lef.setPackagesToScan("hello");
        return lef;
    }

    @Bean
    public JpaVendorAdapter jpaVendorAdapter() {
        HibernateJpaVendorAdapter hibernateJpaVendorAdapter = new HibernateJpaVendorAdapter();
        hibernateJpaVendorAdapter.setShowSql(false);
        hibernateJpaVendorAdapter.setGenerateDdl(true);
        hibernateJpaVendorAdapter.setDatabase(Database.H2);
        return hibernateJpaVendorAdapter;
    }

    @Bean
    public PlatformTransactionManager transactionManager() {
        return new JpaTransactionManager();
    }
这是我的网络应用初始化器

@Override
    public void onStartup(ServletContext ctx)
            throws ServletException {

        AnnotationConfigWebApplicationContext rootCtx = new AnnotationConfigWebApplicationContext();
        rootCtx.register(Application.class);

        ctx.addListener(new ContextLoaderListener(rootCtx));

        RepositoryRestExporterServlet exporter = new RepositoryRestExporterServlet();

        ServletRegistration.Dynamic reg = ctx.addServlet("exporter", exporter);
        reg.setLoadOnStartup(1);
        reg.addMapping("/*");
    }
在服务器上运行应用程序时,Servlet.init上出现以下异常

严重:Servlet/spring数据rest引发加载异常 java.lang.NoSuchMethodError:org.springframework.data.rest.webmvc.ResourceProcessorInvokingHandlerAdapter.getReturnValueHandlersLog/springframework/web/method/support/HandlerMethodReturnValueHandlerComposite;如果您想要完整的stacktrace,请告诉我


我认为这可能是由于一些jar重复导致的类加载问题。但是我正在用maven构建我的项目,我只使用了一个存储库,它的父版本是pom spring boot starter父版本0.5.0.M5,这可能只是提醒我注意您在实体包中使用的名称。我说的是lef.setPackagesToScan方法正在接收的字符串Hello。这是实体所在的真实包吗?如果不是,则可能是您的错误原因。

我所做的是从pom.xml中删除maven boot starter父级,并手动添加所有依赖项。我得到了一场规模完全相同的战争,但它起了作用。Magic…

对于我来说,更新到最新的快照版本解决了这个问题

<dependencies>
    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-rest-webmvc</artifactId>
        <version>2.0.0.BUILD-SNAPSHOT</version>
    </dependency>
</dependencies>
<repositories>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>http://repo.spring.io/snapshot</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

包裹没问题,不是那样的