我正在尝试运行Spring-Boot应用程序,但是在将应用程序作为Java应用程序运行时却出现以下错误
org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is java.lang.NoSuchMethodError: org.apache.catalina.Context.addServletMapping(Ljava/lang/String;Ljava/lang/String;)V
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:137) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:537) ~[spring-context-4.3.14.RELEASE.jar:4.3.14.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at main.java.start.WebApplication.main(WebApplication.java:21) [classes/:na]
Caused by: java.lang.NoSuchMethodError: org.apache.catalina.Context.addServletMapping(Ljava/lang/String;Ljava/lang/String;)V
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.addServletMapping(TomcatEmbeddedServletContainerFactory.java:290) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.addDefaultServlet(TomcatEmbeddedServletContainerFactory.java:270) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.prepareContext(TomcatEmbeddedServletContainerFactory.java:215) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory.getEmbeddedServletContainer(TomcatEmbeddedServletContainerFactory.java:178) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.createEmbeddedServletContainer(EmbeddedWebApplicationContext.java:164) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.onRefresh(EmbeddedWebApplicationContext.java:134) ~[spring-boot-1.5.10.RELEASE.jar:1.5.10.RELEASE]
... 8 common frames omitted
Run Code Online (Sandbox Code Playgroud)
我的POM文件如下
<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>Web.Final.Project</groupId>
<artifactId>Web.Final.Project</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>fitness365-group-project</name>
<description>Fitness 365 …Run Code Online (Sandbox Code Playgroud) 需要获取要在数据库上删除的 id 但我无法通过这种方式获取 id 参数
@RequestMapping(value = {"/delete/search/","/delete/search"}, method = RequestMethod.DELETE)
@ResponseBody
public Integer deleteUser(@RequestBody Integer id_search) {
return id_search;
}
Run Code Online (Sandbox Code Playgroud)
我收到此错误消息
"message": "JSON parse error: Can not deserialize instance of java.lang.Integer out of START_OBJECT token; nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.Integer out of START_OBJECT token\n at [Source: java.io.PushbackInputStream@1b77938; line: 1, column
Run Code Online (Sandbox Code Playgroud) 在访问任何数据之前需要评估条件,两种不同授权方法的目的是什么?
我想知道是否有像Flyway这样的工具可以帮助mongodb进行数据库初始化/迁移。我的一些想法是
我正在寻找的是上述两者的混合,一个嵌入式 mongo,它不仅可以与 JUnit 一起使用,还可以从给定的 json 中预填充数据(类似于 Flyway 中的 V1__init.sql)
有没有这样的工具?
我有一个自定义查询在org.springframework.data.mongodb.repository该变
@Query("{'additionalInfo.suspicious' : true}")
List<Trip> findSuspiciousTripsByFleetId(String fleetId, Pageable pageable);
Run Code Online (Sandbox Code Playgroud)
我如何通过(日期desc)向此添加订单?
OrderByDateDesc例如,它是否神奇地接受后缀?
提前致谢.
我需要调用另一个api,并且尝试使用postForEntity,如下所示:
restTemplate.postForEntity(postUrl, request, responseType)
Run Code Online (Sandbox Code Playgroud)
现在,我正在调用的api返回的是特定类型的对象,比方说CustomerDto。但是我对此对象不感兴趣。我只想发布,不希望任何回报,所以我不想在应用程序中创建这个CustomerDto类。因此,对于这种情况,在上面的语句中,我应该用responseType代替什么。如果我想要返回的对象,在responseType的情况下,我会给出CustomerDto.class,但是我什么也不想得到,那么我该怎么办?
我正在尝试在 spring-boot 中测试我的服务层和存储库,为此,我使用 Mockito,作为测试的一部分,我验证任何登录请求,如果用户名或密码不正确,则会出现异常应该被扔掉。
我正在测试用户是否存在并且测试通过,但是,当用户名不存在时,我似乎无法让测试通过。这是我的 tets 代码
@Mock
UserRepository userRepository;
@InjectMocks
UserServiceImpl userServiceImpl;
Users mockUser = Mockito.mock(Users.class);
private String username = "real_user";
private String fakeUser = "fake_user";
@Before
public void setup() {
mockUser.setUsername(username);
mockUser.setPassword(new BCryptPasswordEncoder().encode("password"));
mockUser.setEnabled(true);
}
/**
* This Test Passes
*/
@Test
public void should_LoadUsersByUsername_IfUserExists() {
Mockito.when(userRepository.findByUsername(username)).thenReturn(mockUser);
userServiceImpl.loadUserByUsername(username);
Mockito.verify(userRepository, Mockito.atLeastOnce()).findByUsername(username);
}
/**
* This Test Fails
*/
@Test(expected = UsernameNotFoundException.class)
public void should_Throw_UserNameNotFoundException_If_UserIsNotFound() {
Mockito
.when(userRepository.findByUsername(fakeUser))
.thenThrow(UsernameNotFoundException.class);
}
Run Code Online (Sandbox Code Playgroud)
这是我试图运行测试的代码
@Service
public class UserServiceImpl implements UserService {
@Autowired
UserRepository …Run Code Online (Sandbox Code Playgroud) 我试图理解Java 10局部变量类型推断.我似乎明白它是什么,但我认为没有任何优势.所以我想知道引入这个功能背后的想法是什么.这些是我的一些观察.如果我错了,请纠正我.
例如,(与其他语言不同)我不能只声明这样的变量
var abc;
Run Code Online (Sandbox Code Playgroud)
我需要初始化它(但不能初始化为null).所以我真的没有看到任何优势.
我看到的其他一个参数是先前我们必须使用其显式类型声明这样的变量.
Map<User, String> userChannels = new HashMap<>();
Run Code Online (Sandbox Code Playgroud)
现在我可以这样做
var userChannels = new HashMap<User, String>();
Run Code Online (Sandbox Code Playgroud)使用现代IDE(如IntelliJ IDEA)及其对代码完成的支持.我想不出这会带来什么额外的好处(在上面的上下文中).
我读到的其他一些观点是
多态代码与var不一致.
而且我也不能将var用于非可表示类型,如Anonymous类.
鉴于所有这些,为什么有必要引入这个功能?有人可以澄清如果我在这里遗漏了什么.
我正在尝试 spring-data-r2dbc。我正在 Postgresql 上尝试这个。我之前尝试过 spring-data-mongodb-reactive 。我忍不住将两者进行比较。
我发现查询派生尚不支持。但我想知道是否有等效的@Tailable. 这样我就能实时收到数据库更改的通知。任何人都可以分享与此相关的任何代码示例吗?
我知道底层数据库应该支持这一点。我相信 Postgresql 确实使用逻辑解码支持这种事情(如果我错了,请纠正我)。
@Tailablespring-data-r2dbc 中有等效的吗?
我的要求是这样的。
我实现了 AWS Lambda 来实现第 1 点。我有一个带有 sqs 触发器的 Lambda。我将批量大小设置为 50,然后将批量窗口设置为 2 小时。我的假设是 Lambda 每 2 小时触发一次,50 条消息将一次性传递到 lambda 函数,我将为每 50 条记录创建一个文件。
但我观察到,即使我将批量大小配置为 50,我的 lambda 函数也会被不同数量的消息触发(有时 50、有时 20、有时 5 等)。
阅读一些文档后,我知道(我不确定)有lambda 生成从 SQS 读取的 5 个长轮询连接,这导致 lambda 函数的这种行为被不同数量的消息触发。
我的问题是
spring-boot ×7
java ×5
spring ×3
mongodb ×2
amazon-sqs ×1
aws-lambda ×1
fongo ×1
java-10 ×1
maven ×1
mocking ×1
mockito ×1
pom.xml ×1
post ×1
postgresql ×1
resttemplate ×1
spring-data ×1
testing ×1
unit-testing ×1