我正在尝试使用Springboot 1.5测试服务我一直在为FilterRegestionBean找到No class的异常。
@RunWith(SpringRunner.class)
@SpringBootTest
class ApiServiceSpecTest {
@Autowired
ApiService apiService;
@Test
public void testGetApis() {
List<Api> apis = this.apiService.getApis("KFS")
given(this.apiService.getApis("KFS")).willReturn("some stuff")
assertThat(!apis.empty)
}
我的build.gradle看起来像:
compile group: 'org.springframework.cloud', name: 'spring-cloud-starter-sleuth', version:'1.1.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:'1.5.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version:'1.5.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version:'1.5.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-mail', version:'1.5.1.RELEASE'
compile(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:'1.5.1.RELEASE')
我已经检查了文档并觉得我已经实现了这个例子,但我无法让它运行。任何帮助将不胜感激。
答案 0 :(得分:0)
FilterRegistrationBean
在Spring boot 1.4.x中被弃用,很可能在Spring boot 1.5中被删除(它只更改了包)。你的spring-cloud-sleuth依赖可能是基于Spring Boot 1.4的,所以当你试图用旧包中的>>cmap(0)=1
File "<ipython-input-38-db88980f3077>", line 1
cmap(0)=1
SyntaxError: can't assign to function call
类来实例化它的跟踪过滤器时,你会遇到运行时问题。
解决方案:将spring-cloud-sleuth依赖关系更新为今天刚刚发布的1.1.2.RELEASE:Release和相关的Github issue。
答案 1 :(得分:0)
在spring boot 1.5及更高版本中,他们移动了FilterRegistrationBean类。我通过从 -
更改我的import语句解决了这个问题进口 org.springframework.boot.context.embedded.FilterRegistrationBean;
到
import org.springframework.boot.web.servlet.FilterRegistrationBean;
这很有效。这适用于spring boot 1.5.1 Release和1.5.2 Release。