笔记笔记
  • Home
  • AI&ML
  • Example
  • Zoo
  • 关于
⌘ K
Spring Boot
一些问题
最后更新时间:
Copyright © 2023-2024 | Powered by dumi | GuoDapeng | 冀ICP备20004032号-1 | 冀公网安备 冀公网安备 13024002000293号

TABLE OF CONTENTS

‌
‌
‌
‌

一些问题

Java 版本导致的问题

已连接到目标 VM, 地址: ''127.0.0.1:64995',传输: '套接字''
Error: A JNI error has occurred, please check your installation and try again
线程 "main" 中发生异常java.lang.UnsupportedClassVersionError: JVMCFRE003 主要版本错误;类=icu/guodapeng/file/FileConsumerApplicationKt,偏移量=6
at java.lang.ClassLoader.defineClassImpl(Native Method)
at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:398)
at java.lang.ClassLoader.defineClass(ClassLoader.java:359)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:682)
at java.net.URLClassLoader.access$400(URLClassLoader.java:89)
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1086)
at java.security.AccessController.doPrivileged(AccessController.java:770)
at java.net.URLClassLoader.findClass(URLClassLoader.java:589)
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:953)
at java.lang.ClassLoader.loadClass(ClassLoader.java:898)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:881)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:601)
与目标 VM 断开连接, 地址为: ''127.0.0.1:64995',传输: '套接字''
进程已结束,退出代码为 1

需要对齐 java 使用的版本。

spring boot 的报错

1.dao 字段名字没映射好

...
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2020-09-03 19:39:23.978 ERROR 28777 --- [ main] o.s.boot.SpringApplication : Application run failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': FactoryBean threw exception on object creation; nested exception is java.lang.IllegalArgumentException: Validation failed for query for method public abstract com.gdp.demo3.entity.User com.gdp.demo3.dao.UserDao.findByUsername(java.lang.String)!
...

大概这样一段报错,实际是我数据库和实体类字段没对应上。

package com.xxx.xxx.entity
import java.util.*
import javax.persistence.*
import javax.validation.constraints.NotEmpty
import javax.validation.constraints.Size
@Table(name = "user")
@Entity
class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
var id: Long = -1
@Column(unique = true)
@NotEmpty(message = "用户名不能为空")
@Size(message = "用户名长度在1~20之间", max = 100, min = 1)
var userName: String = ""
@NotEmpty(message = "密码不能为空")
@Size(message = "密码长度在6~100之间", max = 100, min = 6)
var password: String = ""
}

数据库中 userName 是全部小写,没有任何分割符的,改成 username 就好了。

2.Freemarker 页面老是 404

Spring Boot 2.3.3 的时候发现的,Freemarker 的默认后缀发生了变化,以前可能是 .ftl,现在是 .ftlh。可能是这个造成不能找的模板的。

application.properties 文件设置 spring.freemarker.suffix=.ftlh 可以自己随意设置后缀。

Preview