springboot项目升级的问题
项目升级记录
Websocket
错误原因
在我升级项目为 springboot3 之后, 就出现了 :
org.springframework.web.socket.server.standard.ServerEndpointExporter: Factory method \'serverEndpointExporter\' threw exception with message: jakarta/websocket/DeploymentException
- 奇怪的是我之前在springboot2 是没有这个问题的🤕
所以我就猜测是不是跟websocket 有关的 依赖是不是版本太低了
解决方案
将所有 WebsocketServer(反正就是websocket 业务的地方) 中 导入包为 javax.xxx 都修改为 jakarta.xxx。这是因为 springboot3 的升级, 对了, 其实 所有的javax.servlet 也要换成jakarta.servlet(可以注意看看你controller层有没有遇到这个问题)
引入依赖
- 首先引入正确的依赖 jar 包
1 | <dependency> |
修改导入的包名称
将 javax注释了
换成下面三位兄弟
然后就可以正常运行了
Mybatisplus
错误原因
java.lang.IllegalArgumentException: Property ‘sqlSessionFactory’ or ‘sqlSessionTemplate’ are required
Error creating bean with name ‘commonController’: Unsatisfied dependency expressed through field ‘messageService’: Error creating bean with name ‘messageServiceImpl’: Unsatisfied dependency expressed through field ‘baseMapper’: Error creating bean with name ‘messageMapper’ defined in file
大概就是这些问题 但是之前是没有的 。 尝试了 网上 给 启动类加上 MapperScanner也无济于事, 实际上就是版本问题
解决方案
引入依赖
这是我原本的依赖
1 | <dependency> |
把这个 version 版本换成 3.5.3.1
1 | <dependency> |
运行发现 解决问题
版本问题
- 如果使用 jdk21 的话, 如果出现了
Class com.sun.tools.javac.tree.JCTree$JCImport does not have member field ‘com.sun.tools.
那么请检查你的jdk 版本和你允许的版本是否一致, 比如, 我这设置了运行是1.8, 但是一开始创建的时候jdk为21