Java 可分页实例化在WebMvcTest中成功,在运行的服务器上失败

Java 可分页实例化在WebMvcTest中成功,在运行的服务器上失败,java,spring,spring-boot,Java,Spring,Spring Boot,我有点被这个难住了。我看到的例子和我在网上找到的所有东西都表明 public ResponseEntity<StandaloneTerminals> getTerminalsBySearchTerm( @PathParam("term") String term, @PageableDefault(page = 0, size = 25) Pageable pageRequest) { Page<StandaloneTerminal> termin

我有点被这个难住了。我看到的例子和我在网上找到的所有东西都表明

public ResponseEntity<StandaloneTerminals> getTerminalsBySearchTerm(
        @PathParam("term") String term, @PageableDefault(page = 0, size = 25) Pageable pageRequest) {
    Page<StandaloneTerminal> terminals;
    ...
}
是的

然而,实际将邮递员指向该端点会导致

org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.data.domain.Pageable]: Specified class is an interface
我已经阅读了有关堆栈溢出的多个问题,并尝试将@EnableSpringDataWebSupport添加到一个新的WebConfig类中,以及在不同的时间添加到我的AppConfig和Controller中,以确保安全。Spring继续拒绝实例化这个bean

编辑:应用程序配置,根据请求:

@SpringBootApplication
@EnableSpringDataWebSupport
public class AppConfig {

    public static void main(String[] args) {
        SpringApplication.run(AppConfig.class, args);
    }
}
试着改变

@PageableDefault(page = 0, size = 25) Pageable pageRequest


我们一直无法确切地解释为什么Spring未能实例化这个bean,但我们通过使用默认构造函数实现Pageable找到了一个非侵入性的解决方法。到目前为止,我们还没有运气让Sort以同样的方式工作。

您能发布您的配置吗?spring初始化bean时似乎有问题。应用程序配置?我添加了它。你是否碰巧使用了招摇过市?目前有一个关于可分页和招摇过市的问题尚未解决。注释注释是不够的,您应该禁用Swagger,看看它是否解决了问题。目前,昂首阔步和可寻呼的人相处不好。我花了很多时间试图修复它,但没有成功。在我们的例子中,炫耀现在不是一个优先事项,所以我禁用了它。有一个解决办法,如果我找到了,我会尝试提供链接。今天早上我已经看到了一些这样的帖子。他们面临的问题是,在生成Swagger时,Pageable没有被正确解析,但是没有提到Swagger会导致他们的端点在存在Pageable对象时出错。基于该线程和我自己的修补,您可以使用ApiIgnore和ApiImplicitParams修复您的招摇过市的外观。关于我的问题,我可能不得不在SpringFox网站上开始我自己的帖子。这是我在其他一些关于这个问题的帖子中提出的,我以前也试过。我刚才又试了一次,确信“未能实例化[org.springframework.data.domain.PageRequest]:找不到默认构造函数”(@RequestParameter(必需=false)请帮助我重新添加@RequestParam给了我一个令人沮丧的错误希望,因为它为null并没有引起异常,因此让我认为它已经工作了!不幸的是,即使在URL中添加了分页字段,分页也为null。不过,感谢您的想法。使用Pageable,httpmessage converter将不知道如何安装反序列化obj并赋值。因此请尝试使用PageRequest
@PageableDefault(page = 0, size = 25) Pageable pageRequest
@PageableDefault(page = 0, size = 25) @RequestParameter(required=false) PageRequest pageRequest